我正在尝试将一个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
答案 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 propset
在svn:ignore
的父目录中设置a
属性。
第二个svn propset
不执行任何操作,因为a
尚未受SVN管理。
答案 2 :(得分:5)
svn:ignore
属性用于忽略已添加目录中的文件。
为了避免导入文件(或目录),您应该使用 global-ignores - 特性,该特性可在文件~/.svn/config
(UNIX)或%APPDATA%\Subversion\config
中配置(Windows)在 [miscellany] 部分。
通过删除行前面的#
来激活它:
global-ignores = .git