Uni-Logo

Programmieren in Java : Installation und Einrichtung von SVN

Installation und Einrichtung von SVN

Ziel

Lauffähiges SVN

Sollte Ihnen SVN schon bekannt sein, dann können Sie die Anleitung hier natürlich gerne überfliegen. Wichtig ist allerdings folgendes: Keine .class oder .jar Dateien einchecken! Hinweise dazu gibt es hier im Dokument.

Schritte

Einrichten von Subversion (SVN)

Subversion (SVN) ist ein Versionskontrollsystem, welches Dateien, die lokal gespeichert sind, und Dateien die auf einem Server liegen synchronisieren kann. Dabei werden alle Versionen, die jemals synchronisiert wurden, vorgehalten. Man kann beispielsweise folgenden Befehl ausführen: Gib mir die Datei Test.java zum Stand von vorgestern, 11:30.

Die von uns empfohlenen SVN-Tools sind:

  • subversion/svn (Kommandozeilentool) für Linux. Für Ubuntu/Debian: sudo apt-get install subversion
  • Für Mac ist schon ein Subversion Kommandozeilen Tool installiert welches sich wie das von Linux verhält.
  • TortoiseSVN für Windows

Installationsanleitungen finden sich auf den o.g. Seiten

Generelle Einführungen in Subversion

Checkout Ihres Abgabe-Repositories

Achtung: Damit das folgende funktioniert, müssen Sie sich im Daphne schon einmal mit Ihrem Rechenzentrumsaccount angemeldet haben! Wenn Sie Erika Musterfrau heißen ist Ihr Benutzername wahrscheinlich em32.

Legen Sie einen Ordner an, indem Sie Ihre Abgaben ablegen möchten. Nehmen wir an, der Name des Ordners sei ProgInJava2013.

Das Abgaberepository ist ein Verzeichnis auf dem Abgabeserver (Daphne), in welchem Sie die Abgabe tätigen und auch überprüfen, ob Ihre Abgabe grundlegenden Anforderungen genügt. Die Adresse des Repositories lautet:

https://daphne.informatik.uni-freiburg.de/svn/ProgrammierenJavaSS2013/RZAccount

Ersetzen Sie RZAccount durch Ihren echten RZAccount und führen Sie einen Checkout durch.

Linux/Mac

  1. Wechseln Sie im Terminal in den Ordner ProgInJava2013.
  2. Machen Sie mit folgendem Befehl einen Checkout:

    svn checkout https://daphne.informatik.uni-freiburg.de/svn/ProgrammierenJavaSS2013/RZAccount . --username RZAccount

Windows

Wechseln Sie im Explorer in den Ordner ProgInJava2013. Führen Sie ein Checkout durch, indem Sie einen Rechtsklick auf in das entsprechende Verzeichnis machen und SVN Checkout auswählen.

Checking out with tortoise

Danach geben Sie die Adresse des Repositories ein (setzen Sie Ihren RZ-Account ein!) und drücken ok.

Checkout dialog

Sie sehen keine offensichtlichen Änderungen im Ordner. Das ist korrekt. Wenn Sie nun erneut einen Rechtsklick machen, ist der Eintrag SVN Checkout verschwunden und stattdessen steht unter anderem SVN Update dort.

Finished checkout

SVN Ignore setzen

Laden Sie auf keinen Fall Jar-Dateien (*.jar) oder Classfiles (*.class) ins Repository hoch!

Um dies zu verhindern, erweitern Sie bitte Ihr global-ignore. Das ist eine Liste von Dateien, welche nicht in den SVN-Änderungslisten angezeigt werden.

Linux/Mac

Bearbeiten Sie ~/.subversion/config und erweitern Sie den Eintrag global-ignores. Es kann sein, das dieser noch auskommentiert ist.

global-ignores = *.jar *.class

Windows

Machen Sie einen Rechtsklick in einen beliebigen Ordner, wählen Sie TortoiseSVN, Settings, General und passen Sie den Eintrag für das global-ignore an.

Setting TortoiseSVN's global-ignore

Download der Übung

Laden Sie das aktuelle Übungsblatt Ex02 (Daphne, Zugang mit RZ-Account) herunter. Entpacken Sie das Übungsblatt direkt im Ordner ProgInJava2013. Die Ordnerstruktur muss so aussehen:

			ProgInJava2013
			\- ex02 
			   |- ex02.pdf
			   |- ex02_1
			       |- ...
			       |- build.xml
			   |- ex02_2
			       |- ...
			   |- ...
		

Dabei besteht eine Übung immer aus einem PDF (ex02.pdf), in dem die Aufgabenbeschreibung steht, und Projektvorlagen (ex02_1, ex02_2,...) die Eclipse-Projekte und Ant-Build-Dateien (Makefiles für Java) enthalten. Diese Struktur dürfen Sie nicht verändern.

Commit des 02. Übungsblattes

Ohne weitere Änderungen werden wir nun das gerade heruntergeladene Skelett dem Repository hinzu fügen. Das ist immer der erste Schritt bei einem neuen Übungsblatt.

Um das erste Übungsblatt zum Repository hinzuzufügen, müssen Sie SVN noch die Dateien, welche Sie hinzufügen möchten, bekannt machen.

Linux/Mac

Wechseln Sie in das ProgInJava2013-Verzeichnis und starten Sie svn add ex00/. Danach rufen Sie svn commit -m "Ex00 hinzugefügt" auf. Wenn Sie den Parameter -m weglassen, erscheint ein Editorfenster indem Sie den Grund für den Commit auch mehrzeilig eingeben können. Dieses Kommando lädt die Dateien auf den Server hoch.

Windows

Rufen Sie das Kontextmenü (Rechtsklick) des Ordners ProgInJava2013 auf. Nicht das Kontextmenü von ex00! Und wählen Sie SVN Commit.

Commiting something with TortoiseSVN

Markieren Sie alle Dateien, die Sie auf den Server hochladen möchten (bitte aus Platzgründen keine .jar und .class-Dateien). Geben Sie den Grund für diesen Commit im Nachrichtenfenster an.

Eclipse import

Nun können Sie weiter fortfahren indem Sie die Projekte des Übungsblatt wie gewohnt in Eclipse importieren. (Siehe auch hier).

Weitere Infos zur Validierung und Lösungsabgabe finden Sie im Validation Guide.

Weitere wichtige Hinweise

  • Das von uns zur Verfügung gestellte Eclipse hat ein SVN Plugin installiert. Sollten Sie sich nicht damit auskennen können Sie es einfach ignorieren.
  • Verschieben Sie auf keinen Fall direkt Ordner innerhalb des SVN Repositories. Benutzen Sie immer svn mv und svn cp (Linux/Mac) oder den Copy/Move Befehl von TortoiseSVN (Windows). Grund ist, dass .svn Verzeichnis innerhalb der einzelnen Ordner vorhanden sind, welche nicht direkt verschoben werden dürfen.

Ihre Übungsblattroutine wird also sein

  • Download des Übungsblatt von Daphne.
  • Entpacken der Zip-Datei in den Ordner ProgInJava2013.
  • Linux/Mac: Commit des Templates in das Repository mit svn add exXX und svn commit -m"Übungsblatt exXX Anfang" exXX
  • Windows: Rechtsklick auf ProgInJava, SVN Commit, Auswahl exXX in der Liste.
  • Bearbeiten des Übungsblattes und modifizieren des Codes
  • Subversion die neuen Dateien bekannt machen (svn add NEWFILE1 NEWFILE2 ... (Linux/Mac) bzw. Rechtsklick auf ProgInJava, TortoiseSVN, Add und neue Dateien markieren (Windows)
  • Commit (siehe oben)
  • Validierung in Jenkins. Abgaben die die Validierung nicht durchlaufen werden nicht korrigiert! Überprüfen Sie also vorher ob die Validierung erfolgreich ist.