Git ist ja eigentlich ganz toll. Nur die SVN Anbindung könnte man noch verbessern. Als ich mit git-svn unter Windows ein neues Git Repository erstellen wollte, gab es erstmal Speicherprobleme und der checkout brach immer ab. Nach Anwendung dieses Patch war das behoben.
Nun kam das nächste Problem: “git-svn died with signal 13″. Ich konnte dann git svn clone nicht mehr ausführen, da schon mit dem Auschecken begonnen wurde. Weiter ging es daher mit “git fetch”. Nach ein paar mal “git fetch” war das Repository da.
Der Out Of Memory fehler trat nun am Ende des Checkouts, beim Komprimieren, wieder auf. Daher habe ich den Prozess, mit “git gc“,manuell gestartet.
Überrascht war ich jetzt, daß nur das .git Verzeichnis vorhanden war. Nicht aber die Dateien aus dem SVN Repository.
Der letzte Schritt hat nun für mich am Längsten gedauert. git checkout und git branch funktionierten nicht. Ich wusste das der Code da war und das es eine Möglichkeit geben musste heranzukommen.
Was war jetzt anders gegenüber einem herkömmlichen Checkout? Ich habe “git fetch” verwendet. Daher suchte ich also nach der Bedeutung von git fetch und fand, wie so oft, eine gute Erklärung auf Stackoverflow:
In the simplest terms, “git pull” does a “git fetch” followed by a “git merge”.
Ich musste also ein git merge ausführen. Die nächste Klippe: Wie heisst der zu mergende Branch? Ich probierte “git merge git-svn” und das klappte dann tatsächlich. Nach dem Ausführen hatte ich den master Branch und der Checkout Prozess war endlich abgeschlossen.