为什么'svn忽略'不理睬?

时间:2009-09-21 01:18:10

标签: svn ignore

我正在尝试将一个Linux内核添加到SVN树中,该树有一个.git子目录 - 我不想添加它。

任何人都可以解释这种行为 - 为什么它不会忽略.git目录?

test2$ mkdir -p a/.git/blah
test2$ ls
a
test2$ svn propset svn:ignore .git .
property 'svn:ignore' set on '.'
test2$ svn propset -R svn:ignore .git .
property 'svn:ignore' set (recursively) on '.'
test2$ svn add a
A         a
A         a/.git
A         a/.git/blah

3 个答案:

答案 0 :(得分:17)

目录上的svn:ignore属性列出了当前目录中将被忽略的名称。您已将当前目录中的svn:ignore属性设置为.git,但这不适用于子目录a。您可以做的是首先非递归地添加a

svn add -N a
svn ci -m "add a directory"

然后设置svn:ignore属性:

svn propset svn:ignore .git a

然后添加你的树:

svn add a

这应忽略a/.git目录。

答案 1 :(得分:7)

第一个svn propsetsvn:ignore目录中设置a属性。

第二个svn propset不执行任何操作,因为a尚未受SVN管理。

答案 2 :(得分:5)

svn:ignore属性用于忽略已添加目录中的文件。

为了避免导入文件(或目录),您应该使用 global-ignores - 特性,该特性可在文件~/.svn/config(UNIX)或%APPDATA%\Subversion\config中配置(Windows)在 [miscellany] 部分。

通过删除行前面的#来激活它:

global-ignores = .git