用于跳过文件以忽略 Mercurial 文件的 Google App Engine App.yaml 配置
Posted
技术标签:
【中文标题】用于跳过文件以忽略 Mercurial 文件的 Google App Engine App.yaml 配置【英文标题】:Google App Engine App.yaml config for skip-files to ignore Mercurial files 【发布时间】:2011-04-23 07:10:52 【问题描述】:我在 skip_files 的顶部添加了一行,以使应用引擎部署跳过所有以 .hg 开头的文件,例如 .hgignore 文件和 .hg 目录。这会忽略整个 .hg 目录及其所有文件和子目录吗?
skip_files:
- ^(.*/)?\.hg*$
- ^(.*/)?app\.yaml
- ^(.*/)?app\.yml
- ^(.*/)?index\.yaml
- ^(.*/)?index\.yml
- ^(.*/)?#.*#
- ^(.*/)?.*~
- ^(.*/)?.*\.py[co]
- ^(.*/)?.*/RCS/.*
- ^(.*/)?\..*
【问题讨论】:
【参考方案1】:由 default 跳过 unix 风格的隐藏文件和文件夹。换句话说,任何以点 (.) 开头的文件都已被跳过。如果列表最后没有缺少*
,这就是列表中最后一行的作用(我假设 \s 实际上在那里)。
您的建议:^(.*/)?.hg$
不太正确。要匹配以.hg
开头的任何文件,您需要^(.*/)?\.hg.*
。
你应该阅读regular expressions。
编辑:从 appcfg.py update -v 添加转储。
Scanning files on local disk.
2010-10-10 17:14:07,244 INFO appcfg.py:1693 Ignoring directory '.hg': Directory matches ignore regex.
2010-10-10 17:14:07,244 INFO appcfg.py:1686 Ignoring file '.hgignore': File matches ignore regex.
【讨论】:
Mercurial 还有一个名为 .hg 的文件夹。我的正则表达式希望捕获 .hgignore 文件和 .hg 目录及其所有文件。例如,在 .hg 文件夹中名为 undo.branch 的文件实际上称为 .hg\undo.branch ,它将与我的表达式匹配。换句话说:任何以 .hg开头的东西都不得上传到 Google。 应用引擎看到 .hg\undo.branch 还是看到 undo.branch?它传递给正则表达式子例程的是什么? 您建议的模式将匹配以“hg”结尾的内容。它会查看路径,因此会看到“.hg/undo.branch”。我建议的正则表达式应该捕获以 '.hg' 开头的任何内容,然后是零个或多个字符。但是,同样,默认的跳过文件模式应该跳过以句点开头的任何内容。 它似乎没有上传文件 - 但我也不知道如何告诉 GAE GUI 在部署时给我一个详细的列表。我当然不知道如何“探索”上传到应用引擎进行验证的文件! 从命令行运行appcfg.py update -v .
。这将为您提供详细的输出。从我的输出中可以看出,默认设置 将忽略 .hg*
.以上是关于用于跳过文件以忽略 Mercurial 文件的 Google App Engine App.yaml 配置的主要内容,如果未能解决你的问题,请参考以下文章