2010-06-16 76 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