2009-09-21 18 views
11

Ich versuche, einen Linux-Kernel zu einem SVN-Baum hinzuzufügen, der ein .git-Unterverzeichnis hat - das ich nicht hinzufügen möchte.Warum ignoriert 'svn' nicht?

Kann jemand dieses Verhalten erklären - warum ignoriert es das .git Verzeichnis NICHT?

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 

Antwort

7

Die erste svn propset setzt die svn:ignore Eigenschaft auf dem Eltern Verzeichnis von a.

Die zweite svn propset tut nichts, denn a ist noch nicht unter SVN Management.

17

Die svn:ignore-Eigenschaft in einem Verzeichnis listet die Namen im aktuellen-Verzeichnis auf, das ignoriert wird. Sie haben die Eigenschaft svn:ignore in Ihrem aktuellen Verzeichnis auf .git festgelegt, dies gilt jedoch nicht für das Unterverzeichnis a. Was Sie tun können, ist hinzuzufügen erste a nicht-rekursiv:

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

dann die svn:ignore Eigenschaft:

svn propset svn:ignore .git a 

und fügen Sie dann Ihren Baum:

svn add a 

Dies sollte die a/.git ignorieren Verzeichnis.

+1

Die 'commit' nach dem' add' ist nicht wirklich erforderlich. Es ist möglich, einem Verzeichnis, das in der Arbeitskopie verfolgt, aber noch nicht festgeschrieben wurde, eine Eigenschaft hinzuzufügen. –

5

Die Eigenschaft svn:ignore dient zum Ignorieren von Dateien in bereits hinzugefügten Verzeichnissen.

Für den Import von Dateien zu vermeiden (oder Verzeichnisse), sollten Sie die global-ignoriert verwenden -Feature, die in der Datei konfigurierbar ist ~/.svn/config (UNIX) oder %APPDATA%\Subversion\config (Windows) im [miscellany] Abschnitt.

aktiviert es durch die # vor der Linie zu entfernen:

global-ignores = .git 
+1

Das Problem mit global-ignores ist, dass der nächste Typ, der das Repo benutzt, * nicht * ist, das Zeug zu ignorieren, das du vermeiden solltest, im Repo zu sehen. – Coderer

+0

hierfür können Sie einen Pre-Commit-Hook mit einer erzwungenen globalen Ignorierdatei verwenden –

Verwandte Themen