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
- QuickStart (Kommandozeile, eher Linux user)
- Subversion Basics (Aus dem TortoiseSVN Handbuch)
- Daily Use Guide für TortoiseSVN
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
- Wechseln Sie im Terminal in den Ordner
ProgInJava2013
. - 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.
Danach geben Sie die Adresse des Repositories ein (setzen Sie Ihren RZ-Account ein!) und drücken ok.
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.
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.
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.
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
undsvn 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
undsvn 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.