Migration svn nach git

Es gibt ja immer noch SVN-Repositories (ja, auch bei mir). Es gibt auch Gründe, bei SVN zu bleiben, aber noch mehr, zu git zu wechseln. Spätestens sei ich gitblit ausprobiert habe (hier meine begeisterte Zusammenfassung), wollte ich auch meine privaten Repos nach git umziehen.

Und das habe ich (anhand dieser Anleitung und anderen ergoogelten Infos) so gemacht:

  • Liste aller vorkommender Autoren erstellen:
    svn log --xml | grep author | sort -u | \
    perl -pe 's/.*>(.*?)<.*/$1 = /'
    

    (Bei mir war das recht kurz…)

  • users.txt erstellt:

    Dirk Steinkopf <dirk@xxxxx>
    
  • Aus dem SVN nach git lokal clonen:
    git svn clone http://svn.steinkopf.net/svn/dirkfiles \
       --authors-file=users.txt \
       --no-metadata \
       --stdlayout \
       --localtime \
       dirkfiles
    

    Die Option --no-metadata benutze ich, damit die Commit-Messages 1:1 erhalten bleiben und er mir keine (in meinem Fall) unnützen Infos über die alten SVN-Revisionen mit reinschreibt.

    --localtime bewirkt, dass meine Zeitzone erhalten bleibt.

  • Im o.g. Link ist auch beschrieben, wie man ignores, Tags und Branches kopiert. Das habe ich aber in meinem trivialen Fall nicht gebraucht.

  • Jetzt fügen wir das remote Git-Repo (bei mir auf gitblit) hinzu und pushen einmal alles da hin:

    git remote add origin ssh://myrepo.../dirkfiles.git
    git push --set-upstream origin master
    
  • Später nochmal die Repo-URL ändern geht so:
    git remote set-url origin ssh://neurepo.../dirkfiles.git
    git push
    

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.