Kann ein SVN-Repository mit einem einfachen Befehl als Git-Bare-Repository geklont werden?

600
Morgan Courbet

Ich muss ein SVN-Repository als reines Git-Repo klonen .

Im Moment habe ich dies erreicht durch:

  1. Klonen des SVN-Repos mit git-svn:

    $ git svn clone http://svn.code.sf.net/p/syntaxhighlight/code/ 
  2. Verschieben des .gitVerzeichnisses an den gewünschten Ort:

    $ mv code/.git /srv/git/syntaxhighlight 

Aber ich finde das nicht wirklich praktisch und ich sehe keinen Hinweis darauf, barewann ich man git svn. Wenn außerdem das SVN-Repo aktualisiert wurde, kann ich zwar laufen git svn fetch, erhalte jedoch Fehler, wenn ich versuche, die Datenbank neu zu erstellen.

Kann jede Option den Trick tun?

Im Idealfall hätte ich gerne eine ähnliche Option git clone --mirror.

Git 2.1.4 ausführen

3

1 Antwort auf die Frage

2
Phil

Nachdem Sie das .gitVerzeichnis an den gewünschten Ort verschoben haben, haben Sie folgende Schritte verpasst:

$ rm -rf code # you might want to get rid of the check-out $ cd /srv/git/syntaxhighlight $ git config --bool core.bare true 

Ich habe die folgende Stackoverflow-Frage gefunden: Wie konvertiert man ein normales Git-Repository in ein nacktes? die Antwort auf Ihr Problem geben.

Zu Ihrer Frage zu git svn rebase: Ich kann mir nicht vorstellen, sie git rebaseauf einem nackten Repository zu verwenden. Ich verwende es nur auf einem normalen Git-Repository. Ich denke also dasselbe gilt für git svn rebase.

git svn fetch funktioniert in einem normalen oder leeren Repository, da es ohne Checkout-Verzeichnis funktioniert.