Mercurial .hgignore沮丧

Dre*_*ols 3 regex mercurial hgignore

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

我想忽略的例子:

apps/cms/templates/cms/test_bup_DEPRECATED/widgets/page_link.html
Run Code Online (Sandbox Code Playgroud)

我的.hgignore文件:

syntax: regexp
^static
.*_DEPRECATED.*
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的事情并没有成功:(

另一次尝试失败:

syntax: glob
_DEPRECATED/*
Run Code Online (Sandbox Code Playgroud)

更新:我编辑.hgignore文件到这个:

syntax: glob
**_DEPRECATED/**
Run Code Online (Sandbox Code Playgroud)

但是hg st仍然这样做:

$ hg st | grep DEPR
A apps/cms/templates/cms/test_DEPRECATED/base.html
Run Code Online (Sandbox Code Playgroud)

结果相同:

syntax: glob
_DEPRECATED
Run Code Online (Sandbox Code Playgroud)

Mar*_*nen 8

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

$ hg st | grep DEPR
A apps/cms/templates/cms/test_DEPRECATED/base.html
Run Code Online (Sandbox Code Playgroud)

该文件已添加,但未提交.使用hg forget有关文件给忘了,然后忽略模式将生效.

.hgignore 模式匹配路径的任何部分,所以这就是你需要的:

syntax: regexp
_DEPRECATED/
Run Code Online (Sandbox Code Playgroud)

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

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