2009-09-21 5 views
11

Eklemek istemediğim bir .git alt dizinine sahip bir SVN ağacına Linux çekirdeği eklemeyi deniyorum.Neden 'svn' göz ardı etmiyor mu?

Bu davranışı herkes açıklayabilir mi? Neden .git dizinini dikkate almıyor?

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 

cevap

7

ilk svn propseta ait ebeveyn dizinde svn:ignore özelliğini ayarlar.

İkinci svn propset, hiçbir şey yapmaz, çünkü a henüz SVN yönetimi altında değil.

17

Bir dizindeki svn:ignore özelliği, yoksayılacak olan geçerli dizinindeki adları listeler. Geçerli dizininizde svn:ignore özelliğini .git olarak ayarladınız, ancak bu a alt dizinine uygulanmaz. İlk a olmayan yinelemeli eklemek olduğunu Ne yapabilirsiniz:

svn add a 

Bu a/.git görmezden olmalıdır:

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

Sonra svn:ignore özelliğini ayarlayın:

svn propset svn:ignore .git a 

ve sonra ağaç ekleyin dizin.

+1

'add' sonra' commit' gerçekten gerekli değildir. Çalışma kopyasında izlenen ancak henüz taahhüt edilmeyen bir dizine bir özellik eklemek mümkündür. –

5

svn:ignore özelliği, zaten eklenen dizinlerdeki dosyaların yok sayılması içindir.

dosyaları (veya dizinleri) ithalatını önlemek için, [derleme] bölümünde dosyanın ~/.svn/config (UNIX) veya %APPDATA%\Subversion\config (Windows) yapılandırılabilir küresel görmezden -feature, kullanmalıdır.

çizgisi önünde # kaldırarak etkinleştirin:

global-ignores = .git 
+1

Global-ignores ile ilgili problem, repo kullanan bir sonraki adamın repoda görmek istemeyeceğiniz şeyleri görmezden gelmesidir *. Bunun için – Coderer

+0

, zorunlu bir global göz ardı dosyasını içeren bir ön bağlantı kancası kullanabilirsiniz –