如何测试 app.yaml skip_files 正则表达式是不是与 App Engine 一起正常工作?
Posted
技术标签:
【中文标题】如何测试 app.yaml skip_files 正则表达式是不是与 App Engine 一起正常工作?【英文标题】:How do I test app.yaml skip_files regexps are working correctly with App Engine?如何测试 app.yaml skip_files 正则表达式是否与 App Engine 一起正常工作? 【发布时间】:2014-10-16 21:26:16 【问题描述】:我有一个 app.yaml skip_files
元素:
skip_files:
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
如何准确列出正在跳过的文件?我正在使用 OSX,所以据我所知,我的 find util 没有扩展正则表达式。
【问题讨论】:
【参考方案1】:使用选项 -v
运行 appcfg.py。这将向您显示正在处理的每个文件,并告诉您它是否由于您的 skip_files 而被跳过。
【讨论】:
哈。我完全忘记了这一点。虽然还有很多其他垃圾,但这是一个好的开始。 不是我想要的,但它确实给出了结果——所以谢谢。我将把问题留待更长时间,看看是否有人正是我想要的。 谢谢,你能指出@halfer 真是太好了!看起来网站上的链接已更改...我已经更新了我的个人资料。再次感谢! 谢谢!那指出我的问题来自我的.git
directory...【参考方案2】:
如文档所述:URL and file path patterns use POSIX extended regular expression syntax
。
因此,您可以使用 POSIX 正则表达式测试器来检查您的正则表达式是否按预期工作。例如。 http://www.rexv.org/
【讨论】:
感谢您的链接。不幸的是,这对我的情况不太实用。我必须生成所有源文件的列表,然后将其粘贴到网站中。我更喜欢在我的计算机上运行并使用我的源代码树的解决方案。我最糟糕的解决方案是创建一个 python 脚本来针对我的源代码树测试正则表达式,但我更喜欢命令行解决方案。 你可以使用 OSX 的find
命令:***.com/questions/6844785/…
我在发布问题之前尝试过,但由于出现以下错误而无法正常工作:find: -regextype: unknown primary or operator
。【参考方案3】:
如果您的问题是“我如何确保不会意外跳过文件”,那么一种方法是从 SDK 借用代码并编写脚本。看起来 FileIterator(在 google/appengine/tools/appcfg.py 中)可以满足您的需要。 (我有责任报告的警告是,FileIterator 不是已发布的 API,可能会随 App Engine 团队的心血来潮而改变。)
了解 POSIX 正则表达式可能会让您放心。您显示的列表会跳过编辑临时文件 (1,2)、.pyc 和 .pyo 文件 (3)、RCS 文件* (4) 和任何点文件 (5)。
* RCS 是一个老式的版本控制系统。我只认识一个还在使用它的人。如果您使用 git,则 .git(和内容)受 dotfiles 模式的保护。
【讨论】:
以上是关于如何测试 app.yaml skip_files 正则表达式是不是与 App Engine 一起正常工作?的主要内容,如果未能解决你的问题,请参考以下文章
我是不是需要跨多个 YAML 文件复制“skip_files”?
用于跳过文件以忽略 Mercurial 文件的 Google App Engine App.yaml 配置