2008-11-21 172 views
31

警告: 我嘗試此處列出的所有可能性:How can I ignore everything under a folder in Mercurial
沒有用,因爲我希望。忽略mercurial中的文件夾

我想忽略文件夾test下的所有東西。但不能忽視srcProject\test\TestManager

我嘗試

syntax: glob 
test/** 

而忽略testsrcProject\test\TestManager

有了:

syntax: regexp 
^/test/ 

這是同樣的事情。

另外:

syntax: regexp 
test\\* 

我有安裝TortoiseHG 0.4rc2水銀,626cb86a6523 + tortoisehg,Python的2.5.1,PyGTK的-2.10.6,GTK-2.10.11在Windows

回答

44

嘗試沒有在正規表達式版本插入符後斜線。

^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沒有顯示出來並且不要-忽略的是。

+0

@JaKXz是的,這適用於所有版本的Mercurial。你在`.hgignore`中得到的東西沒有經過。確保你的忽略文件被解釋爲一個正則表達式而不是一個glob,並且不要忽視忽略你已經添加了`hg add`ed的文件。忽略隻影響未添加文件的列表/處理方式。 – 2013-07-16 13:51:33

4

您可以使用零寬度負前瞻和查找背後的斷言來指定要忽略test只有當它不是由srcProject前面而不是後面TestManager

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

水銀使用Python正則表達式,所以你可以找到在Python文檔零寬度斷言的詳細信息:https://docs.python.org/library/re.html#regular-expression-syntax

+1

涼爽的bin目錄和所有* .DS_Store文件技術,但在這種情況下完全矯枉過正 – 2010-01-27 15:25:06

+0

比解決一個簡單問題需要更復雜的方法。 Ry4an的解決方案以更簡單的方式實現了同樣的功能。 – 2010-03-04 02:52:19

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 

另外值得一提的是,善變忽略的文件,這是不目前正在跟蹤,這些是在您將其配置爲忽略它們之前添加的。所以,不要被hg狀態拖延,說一些文件是M(修改)或! (丟失)在您剛添加到忽略列表的文件夾中!

0

創建存儲庫

現在在文件中添加如下內容的根目錄下.hgignore文件。

語法:glob的

斌/ **

* .DS_Store

這將刪除從倉庫