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

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


当前回答

由于我花了一些时间试图让它工作,因此应该注意,如果文件已经存在于SVN中,那么您需要在SVN中删除它们,然后编辑SVN:ignore属性。

我知道这是显而易见的,但他们总是以?在我的svn状态列表,当我认为它只是忽略他们在本地。

其他回答

值得一提的是:

在命令行上不能使用

svn add *

这也将添加被忽略的文件,因为命令行展开*,因此svn add认为您希望添加所有文件。所以用这个代替:

svn add --force .

在父目录上设置svn:ignore属性:

$ cd parentdir
$ svn ps svn:ignore . 'cachedir'

这将覆盖svn:ignore的任何当前值。你可以编辑值:

$ svn pe svn:ignore .

这将打开您的编辑器。您可以添加多个模式,每行一个。

您可以通过以下命令查看当前值:

$ svn pg svn:ignore .

如果你使用的是GUI,应该有一个菜单选项来做这件事。

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

svn propset svn:ignore dirname .

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

svn propedit svn:ignore .

为了稍微扩展一下,如果您使用svn命令行工具执行此操作,您需要键入:

svn propedit svn:ignore path/to/dir

这将打开您选择的文本编辑器,然后键入'*'以忽略其中的所有内容,并保存+quit -这将包括svn中的目录本身,但忽略其中的所有文件,忽略目录,使用父目录的路径,然后在文件中键入目录的名称。保存后,运行更新('svn up'),然后检入相应的路径。

Bash联机程序多次忽略:

svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath"