Bislang habe ich immer
GitSvn
verwendet, wenn ich mit Git auf ein
Subversion-Repository zugreifen wollte. Leider ist GitSvn fehlerhaltig
und in der Handhabung teilweise etwas sperrig. Vor einiger Zeit bin
ich nun über SubGit gestolpert und möchte das heute in der Version
2.0.1 einmal ausprobieren.
Zweigzuordnung: Keine Aktionen notwendig, wenn in Subversion die
Standard-Konventionen (trunk/branches/tags) verwendet werden!
Benutzer und Kennwort: Subversion-Benutzer und -Kennwort muß in
“passwd” oder “config” hinterlegt werden!
1234567891011121314
$ ${SH}/bin/subgit install git/sandbox.git
SubGit version 2.0.1 ('Patrick') build #2706
Translating Subversion revisions to Git commits...
Subversion revisions translated: 99.
Total time: 85 seconds.
INSTALLATION SUCCESSFUL
Your copy of SubGit is not registered for repository at '.../git/sandbox.git'.
You may use SubGit for evaluation purposes.
For production use, please obtain registration key at http://www.subgit.com/ and register SubGit.
Registration is free for Open Source, Educational and Startup projects.
Git-Projekt auschecken
1
$ git clone .../git/sandbox.git sandbox
Projekt bearbeiten
Mit den üblichen Git-Kommandos!
Lokalen Git-Commit durchführen
Beim lokalen Git-Commit wird nur die “Kopie” im Verzeichnis “sandbox” aktualisiert!
1
$ git commit -m "...." .
Zentralen Git-Commit durchführen
Beim zentralen Git-Commit wird das zentrale Git-Repository “…/git/sandbox.git”
aktualisiert und auch das Subversion-Repository:
123456789101112131415
$ git push
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 234 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Synchronizing SVN and Git...
remote: translating SVN revisions to Git commits...
remote: translating Git commits to SVN revisions...
remote: translated commit da5a6078fba40f0686bf1cfd83b0d8c592ee88a1 to revision 100
remote: ... done.
remote: Synchronizing SVN and Git...
remote: ... done.
To /tmp/x/git/sandbox.git
ea0262b..da5a607 master -> master
Konflikt mit Subversion
Hier der Ablauf, wenn man einen Konflikt mit Subversion “provoziert”. Änderung in Subversion durchführen:
SubGit sieht schonmal sehr vielversprechend aus. Es ist sehr einfach
einzurichten und funktioniert dem ersten Eindruck nach tadellos.
Für mich zu klären sind noch die Lizenzbedingungen sowie der Einsatz “im Team”.
Änderungen
2014-02-15: Links zu
GitSvn
und
SubGit
hinzugefügt