如何让 SVN 忽略包含在我的 svn:ignore 文件中的特定目录?

How to get SVN to ignore a particular directory included in my svn:ignore file?

我在命令行上使用 Mac 10.9.5 和 SVN。在我的 src/main/webapp/WEB-INF 目录中,我执行

svn propedit svn:ignore .

其中文件有两行…

classes
 lib

但是,当我运行“svn status”时,它报告“?”对于我的 lib 文件夹中的所有 JAR 文件,例如下面是它报告的一些文件……

?       lib/xercesImpl-2.8.0.jar
?       lib/xml-apis-1.0.b2.jar
?       lib/xml-apis-ext-1.3.04.jar
?       lib/xom-1.2.5.jar

我知道这些文件中的 none 受版本控制,因为当我在 lib 目录上 运行 “svn del” 时,我得到这个…

Daves-MacBook-Pro:WEB-INF davea$ svn del lib
svn: E200005: Use --force to override this restriction (local modifications may be lost)
svn: E200005: '/Users/davea/Dropbox/workspace/sbadmin/src/main/webapp/WEB-INF/lib/antisamy-1.5.3.jar' is not under version control

有谁知道如何让 SVN 忽略我的 lib 目录中的文件,或者让它忽略我的整个 lib 目录?

如果您想忽略 classes/lib 目录的内容,请将 classes 上的 svn:ignore 属性 设置为 lib

例如,使用这样的 svn propset 命令:svn propset svn:ignore classes lib。据我所知,除非您在 Subversion 的运行时配置区域中指定默认文本编辑器,否则 svn propedit 将不起作用。

您还应该能够将 lib 上的 svn:ignore 属性 设置为 * 并且它将保留目录本身的版本,而不是目录下的项目。但是,我想第一种方法更好。

Remember to read SVNBook because this is RTFM topic,实际上:

When found on a versioned directory, the svn:ignore property is expected to contain a list of newline-delimited file patterns that Subversion should use to determine ignorable objects in that same directory.

你的想法是正确的。确保忽略列表中 "lib" 前面没有空格。此外,保存编辑后,您可以执行 svn up . 来拉取最新的并强制它刷新状态列表。

如果您要忽略 classes/lib,请执行 svn propedit svn:ignore classes 并将其设置为 "lib"。