SVN全局忽略递归吗?

时间:2011-09-29 15:14:19

标签: svn

我是SVN的新手,我想以递归方式忽略一个目录,就像在Git中一样。我有一个目录sample,我想以递归方式忽略它。

>svn status
sample/first/1.jpg
sample/second/2.jpg
sample/third/3.jpg

我试过了:

  1. svn ps svn:ignore "*" .(在sample目录下)
  2. ~/.subversion/config中的全局忽略设置为global-ignores = sample
  3. 但是当我运行svn status时,它仍会显示相同的结果:

    >svn status
    sample/first/1.jpg
    sample/second/2.jpg
    sample/third/3.jpg
    

    如何递归忽略SVN中的目录?

5 个答案:

答案 0 :(得分:7)

svn -R propset svn:ignore . -F somefile.txt

其中somefile.txt是一个包含你想要递归设置的所有svn ignore模式的文件。

答案 1 :(得分:4)

如果要忽略目录samples及其中的所有内容,则必须在包含 svn:ignore目录的目录中设置samples。你是在samples内完成的。请注意两件事:

  1. svn:ignore仅影响非翻转文件。这意味着,SVN已知的文件和目录仍将显示。

  2. svn:ignore设置不是累积的或递归的。如果您想忽略您的树中的* .jpg文件,则必须在每个目录中将svn:ignore设置为*.jpg

  3. 请注意,命令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