2009-09-21 242 views
11

我想添加一個Linux內核到一個SVN樹,它有一個.git子目錄 - 我不想添加。爲什麼'svn忽略'不能忽略?

任何人都可以解釋這種行爲 - 爲什麼它不會忽略.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 

回答

7

第一svn propset設置在目錄的asvn:ignore財產。

第二個svn propset什麼都不做,因爲a還沒有被SVN管理。

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

了'add'後'commit'是不是真的需要。可以將屬性添加到在工作副本中跟蹤但尚未提交的目錄中。 – 2011-03-21 17:01:48

5

svn:ignore屬性用於忽略已添加目錄中的文件。

爲了避免文件(或目錄)的進口,你應該使用全球忽略[雜記]部分-feature,這是在文件~/.svn/config(UNIX)或%APPDATA%\Subversion\config(Windows)中配置。

通過在該行的前面去掉#激活它:

global-ignores = .git 
+1

全球忽視的問題是下一個使用回購的人不會忽視你想避免在回購中看到的東西。 – Coderer 2010-04-23 22:22:24

+0

爲此,您可以使用帶有強制全局忽略文件的預提交鉤子 – 2010-04-24 19:41:36