Git mit SVN Master unter Eclipse
Ä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:
- 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...
) - Das Projekt zu einem Git Projekt machen (
Team -> Share Project... -> Git -> Create... -> Finish
) - 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)
- Eclipse schließen
- Das Projektverzeichnis aus dem Eclipse Workspace verschieben, z.B. nach
/tmp
- 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
- Dann aus
/tmp/[projektname]
alles kopieren außer dem.git
Verzeichnis. - 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. - 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
- 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!
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…)
Super, danke für den Hinweis!
Es gibt (mittlerweile) übrigens git-svn für OS X:
sudo port install git-core +svn
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!
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
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!
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
Stets zu Diensten! 😉
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
Glad to hear that this helped you out. Perhaps this is an indication that I need to start learning German. Thanks Google Translate. 🙂