我是SVN的新手,我想以递归方式忽略一个目录,就像在Git中一样。我有一个目录sample
,我想以递归方式忽略它。
>svn status
sample/first/1.jpg
sample/second/2.jpg
sample/third/3.jpg
我试过了:
svn ps svn:ignore "*" .
(在sample
目录下)~/.subversion/config
中的全局忽略设置为global-ignores = sample
。但是当我运行svn status
时,它仍会显示相同的结果:
>svn status
sample/first/1.jpg
sample/second/2.jpg
sample/third/3.jpg
如何递归忽略SVN中的目录?
答案 0 :(得分:7)
svn -R propset svn:ignore . -F somefile.txt
其中somefile.txt是一个包含你想要递归设置的所有svn ignore模式的文件。
答案 1 :(得分:4)
如果要忽略目录samples
及其中的所有内容,则必须在包含 svn:ignore
目录的目录中设置samples
。你是在samples
内完成的。请注意两件事:
svn:ignore
仅影响非翻转文件。这意味着,SVN已知的文件和目录仍将显示。
svn:ignore
设置不是累积的或递归的。如果您想忽略仅您的树中的* .jpg文件,则必须在每个目录中将svn:ignore
设置为*.jpg
。
请注意,命令svn propset
有-R
(又称递归)选项,可能帮助。但请记住,propset
不是propadd
。如果您想在树中设置不同的值,这当然只是一个问题。
答案 2 :(得分:2)
从SVN 1.8开始,有一个新的SVN属性可以执行此操作。请参阅this page from the SVN book的底部:
svn:global-ignores
它适用于您设置的文件夹以及下面的所有内容,您无需指定递归。例如,要设置当前目录:
svn propset svn:global-ignores "bin obj" .
答案 3 :(得分:1)
来自http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.advanced.props.special.ignore:
“在svn:ignore属性中找到的模式仅适用于设置该属性的目录,而不适用于其任何子目录。”
[...]
“一旦对象处于Subversion的控制之下,忽略模式机制就不再适用于它。换句话说,不要指望Subversion避免提交您对版本化文件所做的更改,因为该文件的名称与忽略模式 - Subversion始终注意到它的所有版本化对象。“
您可以使用-R标志,但只会递归应用该属性 - 它不会更改属性效果,因此不会应用于创建的任何新目录。
另外我建议使用propedit而不是ps,因为它允许多线程编辑,否则处理多个忽略模式很棘手。
答案 4 :(得分:0)
对于* nix上的人:
虽然文档暗示~.subversion/config
应该已经有默认配置,但我的(Ubuntu上的SVN 1.6.17)是空的。
这是我最终工作的格式(这是整个文件),包括默认设置,我最后添加了* .ignore:
[Miscellany]
global-ignores=*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.ignore