【问题标题】: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 没有扩展正则表达式。

【问题讨论】:

    标签: macos google-app-engine terminal app.yaml


    【解决方案1】:

    使用选项 -v 运行 appcfg.py。这将向您显示正在处理的每个文件,并告诉您它是否由于您的 skip_files 而被跳过。

    【讨论】:

    • 哈。我完全忘记了这一点。虽然还有很多其他垃圾,但这是一个好的开始。
    • 不是我想要的,但它确实给出了结果——所以谢谢。我将把问题留待更长时间,看看是否有人正是我想要的。
    • 谢谢,你能指出@halfer 真是太好了!看起来网站上的链接已更改...我已经更新了我的个人资料。再次感谢!
    • 谢谢!那指出我的问题来自我的.gitdirectory...
    【解决方案2】:

    如文档所述:URL and file path patterns use POSIX extended regular expression syntax

    因此,您可以使用 POSIX 正则表达式测试器来检查您的正则表达式是否按预期工作。例如。 http://www.rexv.org/

    【讨论】:

    • 感谢您的链接。不幸的是,这对我的情况不太实用。我必须生成所有源文件的列表,然后将其粘贴到网站中。我更喜欢在我的计算机上运行并使用我的源代码树的解决方案。我最糟糕的解决方案是创建一个 python 脚本来针对我的源代码树测试正则表达式,但我更喜欢命令行解决方案。
    • 你可以使用 OSX 的find 命令:stackoverflow.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 模式的保护。

    【讨论】:

      猜你喜欢
      • 2014-10-10
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      相关资源
      最近更新 更多