2010-06-16 81 views
5

我創建一個使用下面的命令行忽略在Windows機器上名單:如何在SVN中創建多個項目的忽略列表?

svn propset svn:ignore "bin" Fardis.Test 

目錄樹結構是:

\src\ 
\src\Fardis.Test\ 
\src\Fardis.Test\bin\ 
\src\Fardis.Test\obj\ 

我運行的命令,而我的當前目錄\src。這工作正常,但我想添加另一個文件夾,\src\Fardis.Test\obj\到忽略列表,但它失敗。我試過如下:

svn propset svn:ignore "bin obj" Fardis.Test 
svn propset svn:ignore "bin, obj" Fardis.Test 
svn propset svn:ignore "bin; obj" Fardis.Test 

發行它們中的哪一個,svn status表示沒有文件夾倉或obj的被添加到忽略列表後。

我該如何解決這個問題?

回答

7

使用svn propedit而不是svn propset,並將每個模式放在編輯器窗口的單獨一行中。

另請參閱setting global-ignores in your config中的文件和目錄,這些文件和目錄在任何工作副本中應被忽略。這通常是從包含大量項目的目錄中排除調試和二進制輸出的更好方法。

+0

+1全球-忽略 – 010110110101 2013-09-06 15:00:46

24

我通常會創建一個.svnignore文件。見svn:ignore 然後做:

$ svn propset svn:ignore -F .svnignore . 
    property 'svn:ignore' set on '.' 

.svnignore:

*.pyc 
*~ 

編輯:我的.svnignore加入到回購也保持它的軌道。

+0

您的解決方案似乎也大大。 TNKS。 – 2010-06-16 09:45:04

+2

不幸的是,這不能像Git一樣遞歸地工作。您可能需要添加'-R'參數來將文件內容應用到所有當前存在的(不是將來的!)子目錄中,但這些模式對於子目錄可能是錯誤的。 – ygoe 2014-02-03 14:31:28

+0

或者如果你的版本是1.8,你可以使用'svn:global-ignores'。 – Dormouse 2015-08-07 14:18:04

0

方法

沒有使用global-ignores有靈活的方法。

例如,您可以創建兩個文件:.svn-ignore.svn-ignore-recur

的.svn-忽略-復發

.idea 
*.pyc 
*.aux 
*.out 
*.ilg 
*.toc 
64bit-Debug 

.svn文件,忽略

.idea 
*.pyc 
*.aux 
*.out 
*.ilg 
*.toc 
64bit-Debug 
# below is difference 
base 
ta.txt 
ta.html 

那麼你應該去調用兩個命令(順序很重要)。

svn propset svn:ignore -F .svn-ignore-recur . --recursive 
svn propset svn:ignore -F .svn-ignore . 

因此,您可以通過遞歸方式忽略某些文件以及存儲庫根目錄中的其他文件。

爲了簡化問題,它是合理創建.sh或/和.bat文件:
svn的-ignor。!蝙蝠

svn propset svn:ignore -F .svn-ignore-recur . --recursive 
svn propset svn:ignore -F .svn-ignore . 


svn-ignor.sh

#!/bin/sh 

sh ./!svn-ignor.bat 

當然,你應該添加文件:

svn add .svn-ignore* !svn-ignor.* 

附加

很顯然你的貓創建像這樣的文件

*.dvi 
*.cot 
seven_doo 

,並呼籲

svn propset svn:ignore -F .svn-ignore-some-subdir ./sub/sub1/sub2