Subversive

Aus SDQ-Wiki

Subversive ist ein Plugin für Eclipse, welches innerhalb eines Eclipse-Systems eine Anbindung an das Versionsverwaltungssystem Subversion (SVN) ermöglicht. Weitere Artikel zu diesem Thema im SDQ-Wiki: Versionsverwaltung mit Subversion (SVN), sdqinternal:Repository-Server (SVN)

Installation

Die Informationen auf dieser Seite sind veraltet: Ist teilweise mitlerweile in Eclipse integriert


Vorgeplänkel

Ausgehend von einer bereits installierten Eclipse-Version erfolgt die Installation über den Eclipse-eigenen Update-Mechanismus (Stand der Beschreibung: Mitte Juni 2009, Eclipse 3.4 Modeling Edition, Kompatibilität mit SVN 1.6).

Zum Verständnis: die Versionsbenennung der SVN-Tools ist oft signifikant verschieden von der Version des zugrundeliegenden/unterstützten SVN-Protokolls (z.B. 1.6): so kann die SVNkit-Bibliothek in Version 1.3.0 schon mit SVN-Protokoll in der Version 1.6 umgehen.

Wichtig ist bei SVN die fehlende "forward compatibility", Beispiel: ein Werkzeug, das SVN-Protokoll 1.5 beherrscht (z.B. TortoiseSVN 1.5.*) kann SVN-Verwaltungsdateien nicht mehr lesen oder schreiben, die mit einer höheren SVN-Version geändert und gespeichert worden sind (z.B. SVN 1.6 über SVNkit 1.3.0). Mit anderen Worten gilt im Allgemeinen: highest applied SVN protocol version is the minimum for the future.

Desweiteren ist folgende Anmerkung hilfreich: bei Werkzeugen/Plugins wird der neu eingeführte Support für eine neue SVN-Protokollstufe nicht notwendigerweise mit einem entsprechenden Versionsschritt markiert. Und nicht zuletzt ein Zitat aus den FAQs von Subversive: "[Frage] Is it right that version 0.7 is newer than versions 1.1.0 and 1.0.0, which I previously used? [Antwort] Yes, it's right, that version is most consistent and up-to-date. Why it has 0.7 number? According to Eclipse Foundation requirements, new and migrated projects should go through incubation phase. On incubation phase project should have version less then 1.0 - that's a reason of version change.

Anleitung

  • Wähle Help => Software Updates => Find and Install
  • Wähle Search for new features to install
  • Lege im nachfolgenden Fenster zwei neue Update Sites an:
  • Durchsuche diese beiden Update Sites nach Features (siehe untenstehenden Screenshot)
  • Installiere die folgenden Features:
    • Subversive Site => Subversive SVN Team Provider Plugin (Incubation) => Subversive SVN Team Provider (Incubation)
    • SVN Connectors Site => Subversive SVN Connectors => Subversive SVN Connectors
    • SVN Connectors Site => Subversive SVN Connectors => SVNKit 1.3.0 Implementation (Optional)
Screenshot
  • Folgende Installationszusammenfassung zeigt Eclipse an:
Screenshot
  • Führe einen Eclipse-Neustart durch

Probleme beim nachträglichen Updaten von Eclipse+Subversive bzw. TortoiseSVN

Es gab zuletzt einige von uns, die Probleme mit Subversive im Zusammenspiel mit Eclispe hatten. Das Problem ist, dass TortoiseSVN in der 1.5.x Version auf SVN 1.5 gewechselt hat. Die dabei im Dateisystem abgelegten Verwaltungsateien sind imkompatibel zu älteren Subversion Clients unter Eclipse (bspw. Subversive). Wenn man dann die gleichen SVN-Verzeichnisse mit SVN unter Eclipse und TortoiseSVN verwendet knallt es.

Die Sache wäre einfach, wenn das Subversive-Update unter Eclipse funktionieren würde. Leider sind die Standard-Updatesites von Subversive schon auf SVN 1.5 umgestellt - ohne, dass der entsprechende Teil der Ganymede Updatesite aktualisiert wurde.

Wenn ihr also "svn: This client is too old to work with working copy 'C:\...'; please get a newer Subversion client" unter Eclipse bekommen solltet, habt ihr TortoiseSVN auf SVN 1.5 aktualisiert, der Eclipse-Client kann damit aber nicht umgehen. Ein Update über die voreingestellten Update Sites schlägt aber fehl, da diese nicht zu einander passen. Lösung: Diese Update Site mit SVN 1.5 Unterstützung verwenden: <http://download.eclipse.org/technology/subversive/0.7/update-site/> (hier nicht die Ganymede Seite nutzen) <http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/> siehe auch <http://www.polarion.com/products/svn/subversive.php?src=eclipseproject>

Wenn ihr auf SVN 1.5 unter Eclipse umgestellt habt, dann müsst ihr noch unter Window > Preferences > Suche nach: "SVN" > SVN Connectors > "SVN Kit für 1.5.x ..". auswählen.

Alternativ: Für alle von euch die unter Eclipse Ganymede Subversion zum Zugriff auf SVN verwenden und keine Probleme bekommen wollen, sollten <http://www.polarion.org/projects/subversive/download/eclipse/2.0/ganymede-site/> als Update Seite verwenden. Diese funktioniert auch mit der Ganymede Updatesite. Außerdem sollte man dann nicht auf TortoiseSVN 1.5.x aktualisieren oder strikt getrennte SVN-Verzeichnissse nutzen. Siehe auch <http://www.eclipse.org/newsportal/article.php?id=701&group=eclipse.technology.subversive#701> Diese Updatesite zerschießt bei einem Update nicht das Subversive, das mit Ganymede ausgeliefert wird.

Benutzung

Der folgende Abschnitt beschreibt die Basisfunktionalität des Subversive-Plugins. Eine ausführliche Dokumentation findet sich im Subversive User Guide.

SVN Repositories View

Für die Anbindung von Eclipse an SVN wird eine eigene Perspektive bereitgestellt: Window => Open Perspective => Other => SVN Repository Exploring. Im SVN Repositories View werden alle bekannten Repositories angezeigt.

Neues Repository hinzufügen

Um ein neues Repository zur Liste der bekannten Repositories hinzuzufügen, wähle

  • File => New => Other => SVN => Repository Location im Hauptmenü oder
  • New => Repository Location im Kontextmenü des SVN Repositories View.

Im folgenden Dialog ist die URL des Repositories anzugeben, z.B. https://svnserver.informatik.kit.edu/i43/svn/code für das PCM-Code-Repository (Achtung: Das angegebene Repository muss bereits existieren; es kann nicht innerhalb von Eclipse neu angelegt werden). Falls das Repository passwortgeschützt ist, muss das Passwort beim Hinzufügen angegeben werden. Nachdem das Repository hinzugefügt wurde, zeigt der SVN Repositories View dessen Inhalte an.

Projekt aus Repository abrufen

Um ein Eclipse-Projekt aus einem Repository abzurufen, selektiere den Projektknoten im SVN Repositories View und wähle Check out im Kontextmenü. Das Projekt wird im Workspace neu angelegt. Danach kann jederzeit wieder ein Check out durchgeführt werden, um das im Workspace befindliche Projekt auf die neueste im Repository verfügbare Version zu aktualisieren.

Neues Projekt im Repository anlegen

Um die Versionsverwaltung für ein im Workspace befindliches Projekt zu aktivieren,

  • selektiere den Projektknoten im Package Explorer View in der Java-Perspektive und wähle Team => Share Project im Kontextmenü.
  • Wähle im folgenden Dialog als Repository-Typ SVN.
  • Wähle eine Repository-Position und einen Namen für das Projekt im Repository (standardmäßig der Projektname)
  • Wähle Finish

Bestehendes Projekt im Repository aktualisieren

Wurde ein Projekt lokal weiterentwickelt, können die Inhalte des Repository entsprechend aktualisiert werden. Selektiere dazu den Projektknoten im Package Explorer View in der Java-Perspektive und wähle Team => Commit im Kontextmenü. Im folgenden Dialog kann man u.a. einen Kommentar für die Änderungen vergeben und die zu aktualisierenden Elemente auswählen. Der Vorgang wird durch Klick auf Finish ausgelöst (Achtung: Vergewissere Dich vor einem Commit, dass durch diese Aktion nicht andere, bereits aktualisierte Inhalte im Repository überschrieben werden!).

Synchronisation lokaler Inhalte mit dem Repository

Mithilfe des Synchronize View können die lokalen Inhalte eines Projekts komfortabel mit dem Repository verglichen und synchronisiert werden. Selektiere dazu den Projektknoten im Package Explorer View in der Java-Perspektive und wähle Team => Synchronize with Repository im Kontextmenü. Daraufhin öffnet sich die Perspektive Team Synchronizing, und eventuelle Unterschiede zwischen lokalen Inhalten und dem Repository werden im Synchronize View angezeigt.

Der Synchronize View verfolgt alle Änderungen online und zeigt stets alle Elemente mit Unterschieden zum Repository an. Bei Doppelklick auf ein Element öffnet sich ein Vergleichseditor, in dem alle Unterschiede dieses Elements angezeigt werden. Der Anwender kann einzelne Unterschiede wahlweise in das Repository übernehmen oder die lokale Version an die Repository-Inhalte anpassen.