我刚开始使用SVN,在源代码控制下有一个不需要的缓存目录。如何忽略SVN的整个目录/文件夹?

我在OS X和命令行上使用版本和TextMate。


当前回答

我有问题得到嵌套目录被忽略;我想忽略的顶部目录不会显示“svn status”,但所有的subdirs都显示了。这对其他人来说可能是不言而喻的,但我想分享一下:

例子:

/树干 /中继/缓存 /trunk/cache/subdir1 /trunk/cache/subdir2

cd /trunk
svn ps svn:ignore . /cache
cd /trunk/cache
svn ps svn:ignore . *
svn ci

其他回答

下面是一个目录结构示例:

\project
    \source
    \cache
    \other

当在项目中,您看到您的缓存目录没有添加,并显示为这样。

> svn status
M  source
?  cache

若要设置ignore属性,请执行

SVN propset SVN:ignore cache。

其中svn:ignore是您正在设置的属性的名称,cache是属性的值,以及。是要设置此属性的目录。它应该是需要该属性的缓存目录的父目录。

检查设置了哪些属性:

> svn proplist
Properties on '.':
  svn:ignore

查看svn的值:ignore:

> svn propget svn:ignore
cache

删除先前设置的属性。

svn propdel svn:ignore

保存SVN将忽略的目录:

这将从存储库中删除文件,但将目录保持在SVN的控制下:

SVN delete——keep-local path/directory_to_keep/*

然后设置忽略目录(和所有内容):

SVN propset SVN:ignore“*”path/directory_to_keep

设置父目录的svn:ignore属性:

svn propset svn:ignore dirname .

如果有多个内容要忽略,请在属性值中用换行符分隔。在这种情况下,使用外部编辑器编辑属性值更容易:

svn propedit svn:ignore .

设置svn:ignore属性。大多数UI svn工具都有办法做到这一点,以及链接中的命令行讨论。

先把它拿掉……

如果你的目录foo已经在版本控制之下,首先删除它:

svn rm --keep-local foo

...然后忽略:

svn propset svn:ignore foo .