Git mit SVN Master unter Eclipse

Got Git?Ächtz – das war eine schwere Geburt.

EGit / JGit ist leider noch nicht sehr ausgereift.

In der Eclipse ein Projekt mit Git zu verheiraten, das als Master Repository Subversion verwendet ist nur über Umwege möglich. Inzwischen habe ich einen ausgetüftelt, nachdem ich diesen Artikel von Anthony Panozzo gefunden habe. Hier meine Anleitung:

  1. In der Eclipse ein neues leeres Projekt vom gewünschten Typ anlegen mit dem richtigen Namen, den es später haben soll. (File -> New -> Project...)
  2. Das Projekt zu einem Git Projekt machen (Team -> Share Project... -> Git -> Create... -> Finish)
  3. Falls es das Projekt in Subversion noch nicht gibt, dort ebenfalls erstellen, inkl. trunk/branches/tags Layout (z.B. mit der Eclipse SVN Repository Exploring Perspektive, falls man das Subversive Plugin installiert hat, ansonsten mit SVN Kommandozeile irgendwo außerhalb des Eclipse Workspaces machen so wie bei Anthony beschrieben)
  4. Eclipse schließen
  5. Das Projektverzeichnis aus dem Eclipse Workspace verschieben, z.B. nach /tmp
  6. Folgende Kommandos in der Shell der Wahl ausführen:
    ~/workspace$ git svn clone [svn-repo-uri] -s
    ~/workspace$ cd [projektname]
    ~/workspace/[projektname]$ git branch -a
  7. Dann aus /tmp/[projektname] alles kopieren außer dem .git Verzeichnis.
  8. Wenn man nicht will, daß spezielle Eclipse Dateien (z.B. .project und .settings/*) in das Repository wandern, eine Datei [projektname]/.gitignore hinzufügen und dort je Zeile einen Eintrag machen.
  9. Danach folgendes ausführen:
    ~/workspace/[projektname]$ git add .
    ~/workspace/[projektname]$ git commit -m "Initial checkin"
    ~/workspace/[projektname]$ git svn fetch
    ~/workspace/[projektname]$ git svn dcommit --dry-run
    ~/workspace/[projektname]$ git svn dcommit
  10. Eclipse wieder öffnen und auf dem Projekt einen Refresh ausführen

Das sollte es gewesen sein. Wenn ich jetzt nichts vergessen und Ihr nichts falsch gemacht habt, habt ihr jetzt ein Eclipse Projekt, daß mit Git und Subversion verheiratet ist.

Um die Änderungen ins Subversion Master Repository zu pushen muß man von jetzt an natürlich auf der Kommandozeile git svn dcommit ausführen, von der Eclipse aus läßt sich das nicht bewerkstelligen.

Leider gibt es im MacPorts noch kein git-svn Paket, das ganze funktioniert also nur auf Linux.

@Anthony: Indeed it helped a lot! Thank you very much!

11 comments

  1. tla says:

    Inzwischen hat sich das ganze ja zum großen Teil erledigt. eGit funzt inzwischen wie geschmiert, auch aufm Mac.

    Hier nur am Rande eine Notiz in erster Linie an mich selbst, wenn ich mal wieder Git und Subversion verheiraten muß:

    http://jpz-log.info/archives/2009/09/16/start-in-git-push-to-subversion-then-work-with-git-svn/
    http://eikke.com/importing-a-git-tree-into-a-subversion-repository/

    (Grafts sind unsere Freunde…)

  2. tla says:

    Super, danke für den Hinweis!

  3. Hanjo says:

    Es gibt (mittlerweile) übrigens git-svn für OS X:
    sudo port install git-core +svn

  4. tla says:

    Hi Andi.
    Nein, dass ist überhaupt kein Problem, bis auf die Tatsache, dass eGit manchmal Dateien nicht richtig zu committen scheint, sondern nur staged.
    Man muss dann auf der Kommandozeile ein
    $ git commit
    hinterherschieben.
    Viel Spaß damit!

  5. andi says:

    Würde gern Eclipse und git benutzen.
    Ganz frisch,es gibt kein Subversion-Repository.

    Ist das ein Problem und sollte das alles problemlos funtkionieren?

    Weil du oben schreibst „EGit / JGit ist leider noch nicht sehr ausgereift.“

    Danke,
    Andi

  6. tla says:

    Die Option „Existing Projects into Workspace“ war mir bis jetzt entgangen.

    Ich habs mir grade mal angeschaut und ein Problem damit:
    Das ganze funktioniert nur, wenn man bereits einmal ein gültiges Eclipse Projekt hat, also zumindest eine valide .project Datei.
    Ich speichere Eclipse spezifische Daten nicht im Repository, deshalb zuerst der Schritt, ein leeres Projekt vom richtigen Typ zu generieren.

    eGit zu aktivieren kann man natürlich auch nach dem Import machen. Ich glaube, das ging mit der damals verwendeten Version noch nicht, oder ich hatte mich nur zu doof dafür angestellt. 🙂

    Vielen Dank für den Input!

  7. Ich noch mal. Ich habe noch ein wenig über Deinen Vorschlag nachgedacht und eine leicht modifizierte Version hinbekommen: https://niebegeg.net/blog/subverion-projekte-mit-git-anbindung-in-eclipse-bearbeiten

    In kurz: Die Git-Plugins mit git-svn direkt in den Workspace clonen und dann in den Eclipse-Workspace importieren. Ich hoffe, das wird bis eGit 1.0 noch besser zu handhaben 🙂

    Viele Grüße, Dirk

  8. tla says:

    Stets zu Diensten! 😉

  9. Danke für Deinen Erfahrungsbericht. ich habe genau die Eclipse-git-svn-Kombi vor mir. Mit Deinem Text habe ich wahrscheinlich ein paar Stunden gespart 🙂

    Viele Grüße, Dirk

  10. Glad to hear that this helped you out. Perhaps this is an indication that I need to start learning German. Thanks Google Translate. 🙂


Trackbacks / Pingbacks

  1. Subversion-Projekte mit Git-Anbindung in Eclipse bearbeiten | Noch niebegeg.net

Schreibe einen Kommentar