SVN不会忽略文件

时间:2012-02-25 18:11:20

标签: svn version-control svnignore

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

svn propset svn:ignore *.aux" .

忽略所有.aux个文件。但是,在完成此操作并成功svn commit之后,svn status仍会显示:

?       something.aux
!       somethingelse.aux

是否有更强大的方法告诉它忽略这些文件,以便它们不会显示在这样的列表中?

1 个答案:

答案 0 :(得分:2)

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

请参阅SVNBook的重要摘录,其中解释了行为:

  

Subversion对可忽略文件模式的支持仅扩展到   将未版本控制的文件和目录添加到的一次性过程   版本控制。一旦一个对象受到Subversion的控制,那么   忽略模式机制不再适用于它。换句话说,不要   期望Subversion避免提交你所做的更改   版本化文件只是因为该文件的名称与忽略匹配   pattern-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:ignore属性中找到的模式仅适用于   设置该属性的目录,而不是其中的任何一个   子目录。

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