2010-06-04 15 views
26

Ich benutze Git mit einem SVN-Repository alles läuft gut Ich habe alle meine Verzweigung mit Git so habe ich nicht auf Svn verzweigen, aber ich verzweigt mit Git und schob diese Zweige an einen separaten Ort. Dann habe ich bei Bedarf Veränderungen aus dem Zweig übernommen.
Aber jetzt mag ich einige Zweige erstellen, die auf svn tatsächlich existieren ich versuchte:git-svn Verzweigung

$ git svn branch someFeature -m "message" 

, und ich habe dies:

$ git svn branch someFeature -m "message" 
Multiple branch paths defined for Subversion repository. 
You must specify where you want to create the branch with the 
    --destination argument. 

Wie soll ich das Ziel angeben ich dies nicht verstehen kann out und die Manpage ist auch nicht so klar.

Antwort

30

Sie haben mehrere (oder gar keine) Verzeichnisse aus dem SVN markiert als Ort für Filialen. Schauen Sie in Sie .git/config-Datei, würde es wie dieser Abschnitt sein:

[svn-remote "svn"] 
url = file:///someurlto/svn 
fetch = trunk:refs/remotes/trunk 
branches = branches/*:refs/remotes/* 
branches = branches2/*:refs/remotes/* 

Es gibt mehrere Einträge für Filialen sein. (Alternativ, wenn Sie keine Niederlassung Einträge haben, die erste Zeile sollte mit einem Standard-SVN-Repo-Layout arbeiten.)

Also, wenn Verzweigung Sie zeigen muss, in welchem ​​Verzeichnis die Verzweigung erstellt werden:

git svn branch someFeature -m "test" --destination branches2 

wobei das letzte Element eines der Verzeichnisse aus Verzweigungszeilen in .git/config ist.

+1

Ich sehe nur url = file: /// someurlto/svn holen = trunk: refs/remotes/trunk i dont sehen Zweige in dieser Datei – slayerIQ

+1

Ahh, dann das ist das Problem. Ich weiß nicht, wo ich diesen Zweig hinstellen soll. Fügen Sie eine ähnliche Zeile wie in meinem Beispiel hinzu. (filials = pathinsvnrepo/*: refs/remotes/*) – silk

+0

Was ist mit einem einfachen Svn Repo ohne die Ordnerstruktur Stamm/Zweige? Der anfängliche Verzweigungsteil ist bestanden. Aber git svn dcommit schlägt fehl. Es beschwert sich, dass Ordner nicht existieren ... – kakyo

1

Wenn ich lese die git svn man page rechts:

git svn <command> [options] [arguments] 

, sollten Sie Folgendes eingeben:

git svn branch -m "message" someFeature 

statt:

git svn branch someFeature -m "message" 
+0

$ git svn branch -m "Nachricht" someFeature Mehrere Zweigpfade für das Subversion-Repository definiert. Sie müssen angeben, wo Sie die Verzweigung mit dem Argument --destination erstellen möchten. Immer noch die gleiche Nachricht. – slayerIQ

Verwandte Themen