32

警告: 我尝试了此处列出的所有可能性:如何忽略 Mercurial 文件夹下的所有内容
没有一个像我希望的那样工作。

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

我试试

syntax: glob
test/**

它忽略testsrcProject\test\TestManager

和:

syntax: regexp
^/test/

这是同一件事。

还有:

syntax: regexp
test\\*

我在 Windows 中安装了 TortoiseHG 0.4rc2 和 Mercurial-626cb86a6523+tortoisehg、Python-2.5.1、PyGTK-2.10.6、GTK-2.10.11

4

4 回答 4

45

尝试在正则表达式版本中插入符号后不带斜线。

^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 出现了。

于 2008-11-24T04:10:38.317 回答
4

您可以使用零宽度的负前瞻和后视断言来指定test仅当它前面srcProject没有和后面没有时才要忽略TestManager

syntax: regexp
(?<!srcProject\\)test\\(?!TestManager)

Mercurial 使用 Python 正则表达式,因此您可以在 Python 文档中找到有关零宽度断言的更多信息:https ://docs.python.org/library/re.html#regular-expression-syntax

于 2008-11-21T22:23:36.100 回答
4

这两种情况都对我有用(在 linux 和 windows 上):

syntax: regexp
^backup/     #root folder
nbproject/   #any folder

或者

syntax: glob
./backup/*   #root folder
nbproject/*  #any folder

但是,在我将 .hgignore 文件的链接添加到我的 repo 中的 .hgrc 文件之前:

[ui]
ignore = .hg/.hgignore

另外值得一提的是,mercurial 会忽略当前未跟踪的文件,这些文件是在您将其配置为忽略它们之前添加的。所以,不要被 hg status 推迟,说一些文件是 M(修改)或!(缺失)在您刚刚添加到忽略列表的文件夹中!

于 2010-06-07T10:27:17.380 回答
0

在存储库的根目录下创建 .hgignore 文件

现在在文件中添加以下内容。

语法:glob

斌/**

*.DS_Store

这将从存储库中删除 bin 目录和所有 *.DS_Store 文件

于 2015-11-25T03:27:08.083 回答