警告: 我尝试了这里列出的所有可能性:How can I ignore everything under a folder in Mercurial 没有人按我的意愿行事。
我想忽略文件夹test
下的所有内容。但不要忽略srcProject\test\TestManager
我试试
syntax: glob
test/**
它会忽略test
和srcProject\test\TestManager
使用:
syntax: regexp
^/test/
这是一回事。
还有:
syntax: regexp
test\\*
我在Windows中安装了带有Mercurial-626cb86a6523 + tortoisehg,Python-2.5.1,PyGTK-2.10.6,GTK-2.10.11的TortoiseHG 0.4rc2
答案 0 :(得分:44)
在regexp版本中插入符号之后不使用斜杠尝试。
^test/
这是一个测试:
~$ mkdir hg-folder-ignore
~$ cd hg-folder-ignore
~/hg-folder-ignore$ echo '^test/' > .hgignore
~/hg-folder-ignore$ hg init
~/hg-folder-ignore$ mkdir test
~/hg-folder-ignore$ touch test/ignoreme
~/hg-folder-ignore$ mkdir -p srcProject/test/TestManager
~/hg-folder-ignore$ touch srcProject/test/TestManager/dont-ignore
~/hg-folder-ignore$ hg stat
? .hgignore
? srcProject/test/TestManager/dont-ignore
请注意,ignoreme没有显示,dont-ignore是。
答案 1 :(得分:4)
您可以使用零宽度否定前瞻和后瞻断言来指定只有在test
之前没有srcProject
并且后面没有TestManager
时才要忽略syntax: regexp
(?<!srcProject\\)test\\(?!TestManager)
:
{{1}}
Mercurial使用Python正则表达式,因此您可以在Python文档中找到有关零宽度断言的更多信息:https://docs.python.org/library/re.html#regular-expression-syntax
答案 2 :(得分:3)
这两个案例对我有用(在linux和windows上):
syntax: regexp
^backup/ #root folder
nbproject/ #any folder
或
syntax: glob
./backup/* #root folder
nbproject/* #any folder
然而,在我的回购中添加了.hgignore文件的链接到.hgrc文件之前:
[ui]
ignore = .hg/.hgignore
另外值得一提的是,mercurial会忽略当前没有跟踪的文件,这些文件是在您将其配置为忽略它们之前添加的文件。因此,不要被hg状态推迟说某些归档是M(修改)或! (缺少)您刚刚添加到忽略列表的文件夹中!
答案 3 :(得分:0)
在存储库的根目录下创建.hgignore文件
现在在文件中添加以下内容。
语法:glob
仓/ **
*。DS_Store
这将从存储库中删除bin目录和所有* .DS_Store文件