我有一个 RE 检查器说这应该可以工作。我究竟做错了什么?!?

我试图忽略的示例:

apps/cms/templates/cms/test_bup_DEPRECATED/widgets/page_link.html

还有我的 .hgignore 文件:
syntax: regexp
^static
.*_DEPRECATED.*

我尝试了各种方法,但都没有成功:(

另一个失败的尝试:
syntax: glob
_DEPRECATED/*

更新:
我将 .hgignore 文件编辑为:
syntax: glob
**_DEPRECATED/**

但是 hg st 仍然这样做:
$ hg st | grep DEPR
A apps/cms/templates/cms/test_DEPRECATED/base.html

相同的结果:
syntax: glob
_DEPRECATED

最佳答案

首先,.hgignore 不会忽略 Mercurial 已经跟踪的文件。您的示例表明该文件已被跟踪:

$ hg st | grep DEPR
A apps/cms/templates/cms/test_DEPRECATED/base.html

该文件已添加,但未提交。使用 hg forget 忘记文件,然后忽略模式将生效。
.hgignore 模式匹配路径的任何部分,所以这就是你所需要的:
syntax: regexp
_DEPRECATED/

请注意,您可能需要目录的尾部斜杠,否则它也会匹配以 _DEPRECATED 结尾的文件,否则删除它。

要计算忽略模式,TortoiseHg ( thg ignore ) 中的忽略 GUI 非常有用。它显示所有未跟踪和未忽略的文件,并且可以输入模式,直到忽略正确的文件。

关于regex - Mercurial .hgignore 挫折,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11303202/

10-12 19:25