LugFramework - Ein Framework zur Erstellung von Swing-Applikationen

LugFramework

Mercurial-Server

SSH-Zugang

Das Mercurial-Repository liegt auf dem Server hg.javaproject.de. Entwickler können dort einen SSH-Zugang bekommen. Das Home-Verzeichnis des Benutzers kann frei benutzt werden. Dort kann man auch für eigene Zwecke eigene Klone des Repositories machen etc. Im Grunde dürft ihr auf dem Rechner arbeiten, wie ihr wollt. ''(Verboten ist alles, was irgendwie nach Hacken riecht. Also bitte keine neugierigen Spaziergänge ins Filesystem oder ins Netzwerk. Danke!)''

Speicherplatz

Keine Angst, Platz sollte dort genug sein, ich nehme mir bei Platzproblemen im Extremfall das Recht heraus, Dateien zu löschen, die nicht zum offiziellen Repository gehören, an denen keine Erklärung dransteht, warum man die behalten sollte und die seit mehr als einem halben Jahr nicht mehr benutzt worden sind. Nett für den Fall wäre, wenn ihr Eure Backups z.B. in ein Verzeichnis "Trashcan" kopiert, dann weiss ich, was im Notfall wegkann.

Konventionen für Repositories

Repositories, die für mehrere Benutzer gedacht sind, lege ich immer nach /home/groups/mercurial/repos/' (bzw. '../mercurial/repos/ aus dem Home-Verzeichnis). Dort gibt es dann ein Verzeichnis wie z.B. LugFramework mit dem eigentlichen Repository. Ich mache mir selber immer einen Softlink in meinem Homeverzeichnis, z.B. so:

ln -s ../mercurial/repos/ .

Dadurch kann ich von aussen mit folgender URL darauf zugreifen, um z.B. das Repository auf meinen eigenen Rechner zu klonen:

hg clone ssh://tbayen@hg.javaproject.de:2222/LugFramework

Benutzer-Klon

Wenn man normal per SSH in seinem eigenen Verzeichnis auf dem Mercurial-Server eingeloggt ist, kann man mit

hg clone LugFramework LugFramework-tbayen

einen Klon des Haupt-Repositories erstellen. Man kann beliebig viele Klone für verschiedene Zwecke erstellen. Allerdings haben wir vereinbart, daß das Verzeichnis, das obiger Konvention genügt (also "LugFramework" + "-" + Benutzername) das offizielle Ausgangsverzeichnis eines Benutzers ist, in das er Dinge legt, die die anderen sich anschauen sollen.

Wir haben dazu folgende Regeln besprochen:

Haupt-Klon

Der Hauptklon wird von Thomas Bayen verwaltet, weil dieser sich mit Mercurial am besten auskennt. Andere Benutzer dürfen dort auch schreiben. Allerdings ist größte Vorsicht angezeigt, wenn man mit merges zu tun bekommt. Diese sollten auf jeden Fall besser vorher zu Hause durchgeführt werden! Wenn man etwas mit "push" eincheckt, muss man auf jeden Fall unmittelbar vorher zuerst mit "pull" eventuelle Änderungen von anderen Benutzern abholen, weil man sonst mehrere Heads produziert.

Für die meisten Arbeiten sollte vom Hauptklon eine Kopie mit hg clone erzeugt werden, auf der man dann arbeitet.

Ausnahmen zu der Schreibbeschränkung sind kurze und knappe Änderungen. Insbesondere TODO-Zeilen finde ich einerseits sehr wichtig, damit alle wissen, was anderen am Code aufgefallen ist und andererseits sind einzeilige Änderungen auch relativ unempfindlich beim mergen.

Tipps und Tricks

Ein paar Tips zu Mercurial gibts im LUG-Wiki.