2012-02-25 178 views
5

我想要一个存储库完全忽略某些文件 - 相当于将这些文件添加到git系统中的.gitignore。我试过了:SVN不忽略文件

svn propset svn:ignore *.aux" . 

忽略所有.aux文件。然而,这样做,并成功后svn commitsvn status还表示:

?  something.aux 
!  somethingelse.aux 

有一个更强大的方式来告诉它忽略这些文件,所以他们不会在这样的列表中显示出来?

+5

请参阅:http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.ignore.html。 – 2012-02-25 18:14:18

+2

我假设你在你提到的“svn propset”命令中有一个错字。不应该有'''(引号)。 – bahrep 2012-11-01 10:25:24

回答

2

这实际上是一个常见问题,我强烈建议您考虑涵盖它的SVNBook章节"Ignoring Unversioned Items"

请参阅从SVNBook的重要摘录这也解释了行为:

Subversion的用于忽略文件模式的支持仅限于将未版本化的文件和目录 版本控制的 一次性的过程。一旦对象处于Subversion的控制之下,忽略模式机制就不再适用于它。换句话说,不要 希望Subversion避免仅仅因为该文件的名称与忽略 模式匹配而对版本化文件进行更改,因为Subversion始终注意到它的所有版本化对象。

根据svn status输出,您的工作副本包含one unversioned item (the one with the '?' sign) and one missing item (the one with the '!' sign)

?  something.aux 
!  somethingelse.aux 

所以,你手动删除(即通过Windows资源管理器,而不是通过SVN客户端)的somethingelse.aux,它现在已经“失踪”状态。另一个文件something.aux仍然未版本控制,并且不是被忽略。

如果您没有输错svn propset命令,犯下的属性更改,文件依然未版本控制的状态你会发现这个摘录有用:

在SVN中发现的模式:忽略属性只适用于在其上设置了该属性的目录 ,而不是其任何 子目录。

此外,您可以通过发出svn propget命令来检查svn:ignore属性。