【问题标题】:About Mercurial, .hgignore file and glob syntax关于 Mercurial、.hgignore 文件和 glob 语法
【发布时间】:2010-02-26 18:20:08
【问题描述】:

在对 .hgignore 文件使用 glob 语法时,是否有可能递归地忽略某些文件和文件夹,但一个除外?

假设你有:

a/
a/b
a/c
a/d

类似:

syntax globe:
a
^a/b

这应该忽略 cd 并保留 b

我知道这已经在其他 SO 问题中讨论过,但似乎他们都在使用 regex 语法模式。

【问题讨论】:

  • 为什么不能使用正则表达式语法?这会容易得多。

标签: regex syntax mercurial glob hgignore


【解决方案1】:

如果您想忽略除一个以外的所有内容,只需添加一个即可。添加文件覆盖忽略它,这与 subversion 或 cvs 不同,但非常方便。

【讨论】:

  • 我宁愿避免这个过程。这很容易出错,我通常会在创建很多文件后忘记将文件添加到 hg :)
  • @Roberto Aloi 所有的可执行文件和其他生成的东西都会让你的提交变得混乱。我宁愿添加新文件,也不愿每次都删除所有不需要的东西。
【解决方案2】:

glob 语法在match.py 中转换为正则表达式。看来这是您正在寻找的语法:

syntax:glob

a/*[!b]

【讨论】:

  • 这在本例中运行良好,但显然不适用于嵌套子文件夹(在我的真实仓库中,我需要跳过类似 a/*[!b/sub/subsub] 的内容)。我试图以几种模式逃避斜线,但没有帮助。有什么建议吗?
  • 目前为止被接受为最佳答案:)
猜你喜欢
  • 1970-01-01
  • 2016-01-13
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-03
  • 2011-01-15
相关资源
最近更新 更多