SVN不会忽略文件

Dav*_*ria 5 svn version-control svnignore

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

svn propset svn:ignore *.aux" .
Run Code Online (Sandbox Code Playgroud)

忽略所有.aux文件.但是,在这样做并成功之后svn commit,svn status仍然显示:

?       something.aux
!       somethingelse.aux
Run Code Online (Sandbox Code Playgroud)

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

bah*_*rep 2

这实际上是一个常见问题,我强烈建议您考虑涵盖该问题的 SVNBook 章节“忽略未版本控制的项目”

\n\n

请参阅 SVNBook 中解释该行为的重要摘录:

\n\n
\n

Subversion 对可忽略文件模式的支持仅扩展到将未版本控制的文件和目录添加到版本控制的一次性过程。一旦对象处于 Subversion 的控制之下,\n 忽略模式机制就不再适用于它。换句话说,不要期望 Subversion 仅仅因为该文件的名称与忽略模式匹配而避免提交您对版本化文件所做的更改\n\nSubversion 始终会注意到所有其版本化对象的数量。

\n
\n\n

根据svn status输出,您的工作副本包含一项未版本控制的项目(带有\'?\'符号的项目)和一项缺失的项目(带有\'!\'符号的项目)

\n\n
?       something.aux\n!       somethingelse.aux\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,您已手动删除(即通过 Windows 资源管理器,但不是通过 SVN 客户端),它somethingelse.aux现在处于“丢失”状态。另一个文件something.aux仍然没有版本控制并且不会被忽略。

\n\n

如果您没有错误输入svn propset命令、提交了属性更改并且文件仍然处于未版本化状态,您可能会发现以下摘录很有帮助:

\n\n
\n

svn:ignore 属性中找到的模式仅适用于设置该属性的目录,而不适用于其任何子目录。

\n
\n\n

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

\n