如何让Subversion真正忽略一个目录?

6

我希望使Subversion忽略我的NetBeans IDE项目配置目录(“nbproject /”)及其所有内容。我在SVN文档中阅读到,您可以在~/.subversion/config中设置全局忽略模式。例如,在我的配置文件中...

### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
global-ignores = *.o *.lo *.la .class #*# .*.rej *.rej .*~ *~ .#* 
  .DS_Store *.log nbproject

尽管有nbproject文件夹,但SVN不会忽略它。它会在状态报告中显示。有没有办法防止这种情况发生? nbproject文件夹似乎已经进入了仓库,但我已将其删除。即使它不在仓库中,也没有包含.svn文件夹,SVN仍然拒绝忽略它。可能是因为它在父文件夹的.svn文件夹中被记录了吧?
更新:
我刚刚彻底从SVN和文件系统中删除了它,并重新创建了项目。现在,SVN正在尊重忽略模式。我不知道为什么之前不能这样做。
4个回答

9
请注意,在配置文件中的忽略模式仅在添加内容时生效。
如果您已经将项目放入SVN中,则需要手动附加属性。
如果您已经在存储库中有要忽略的目录,则需要在添加属性之前将其删除并清理。

2
我猜最有可能的问题是该目录已经在代码库中了。 - Clyde
很可能。然后你会遇到一些奇怪的问题。比如更新会尝试将其拉下来,但其中的更改不会被提交。 - Lasse V. Karlsen

1

我无法在svn版本1.6.2(r37639)中重现此问题:未受版本控制的目录被忽略,正如它应该被忽略。


1

你也可以执行 svn propedit svn:ignore /path/to/dir 命令,这将打开一个忽略文件。然后只需键入 * 通配符,svn 就会忽略所有内容。


1

我曾经遇到过同样的问题。ignore-globals 的设置与上述完全相同,但由于 nbproject 已经在子版本控制下,因此它会显示状态。

操作:

svn rm nbproject --keep-local

那应该解决了。对我来说有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接