忽略mercurial中的文件夹

时间:2008-11-21 20:37:35

标签: regex mercurial hgignore ignore-files

警告: 我尝试了这里列出的所有可能性:How can I ignore everything under a folder in Mercurial 没有人按我的意愿行事。

我想忽略文件夹test下的所有内容。但不要忽略srcProject\test\TestManager

我试试

syntax: glob
test/**

它会忽略testsrcProject\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

4 个答案:

答案 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文件