2009-04-09 4 views
8

Gibt es eine Möglichkeit, "git svn dcommit" aus einer geklonten Git-SVN-Repository:Gibt es eine Möglichkeit, "git svn dcommit" aus einer geklonten Git-SVN-Repository:

habe ich mehrere Filialen in meinem SVN Manchmal ist es eine sehr kleine Verzweigung und es ist schön, sie im gleichen Verzeichnis zu haben, aber manchmal werden diese Zweige groß und es ist schön, das Ganze in einen anderen Ordner zu verschieben.

Aber wenn ich einen Git-Klon von diesem lokalen Repository an einen anderen Ort auf meiner Festplatte tun git-svn verlor alle seine Informationen und ich weiß nicht, wie man es zurück verbindet. Ich nehme an, ich könnte einfach eine Kopie des Ordners machen, aber es wäre schöner, es durch Git zu machen.

Antwort

13

Sobald Sie ein git-svn Repo geklont haben, können Sie die benötigten Informationen abrufen, indem Sie git svn init mit denselben Parametern ausführen, mit denen das ursprüngliche Repo erstellt wurde. Nach the WebKit git-svn instructions ist der Trick update-ref zu verwenden, um sich in einen Zustand zu erhalten, wo Sie an der Spitze des Baumes SVN vorspulen:

git svn init -T trunk http://svn.webkit.org/repository/webkit 
git update-ref refs/remotes/trunk origin/master 

Die zu git svn init hängen bestanden genauen Parameter über die Einrichtung Ihres Subversion Repo und git-svn Klon.

+0

Sollte nicht 'git svn init' geht * vor *' git Update-Ref? – jfs

+0

Yup - es sollte. +1 für das Webkit ref, tho '- sagte mir genau, was ich wissen musste. – jstevenco

+0

Nicht sicher, wie ich das falsch verstanden habe. Die Reihenfolge der Befehle wurde jetzt korrigiert. –

3

Leider nicht, da git-clone klont die git-svn Informationen bei der Durchführung eines Klons nicht. Sie können mehr über die Situation here lesen.

-1

Die Svn info ist nicht viel mehr als ein paar Bits von Informationen in der .git/config Datei, richtig? Du könntest sie einfach in die Hand nehmen und gut gehen.

1

Es ist möglich, aber Sie müssen die Dinge etwas anders einrichten. Hier ist, wie wir es auf numpy tun - das Repo mit git-svn-automirror

erstellt wurde Sie in der Funktion _git_update_mirror schauen, um zu sehen, wie es zu tun manuell

+0

So ist der Punkt, um sicherzustellen, dass die Remote-Refs (die normalerweise refs/remotes/origin/* aussehen), sollte be 'refs/remotes/* mit denen übereinstimmen, die git-svn verwendet (standardmäßig: svn-remote.svn.branches = branches/*: refs/remotes/*)? – inger

Verwandte Themen