Also ich war ja bisher kein Fan von Versionsverwaltung mittels der Programme, die so zahlreich in den letzten Jahren erschienen sind. Zwar hat der Martin mal versucht die Vorteile davon zu erörtern, sinngemäß: „Wenn du eine Config Datei nach config.bak umbenennst, bist du schon ein Kandidat für [hier das Wort einsetzen, welches ich längst wieder vergaß]“. Seit gestern verwende ich Mercurial für meine LaTeX Dokumente. Nicht einfach so, aus heiterem Himmeln, weil ich es die Fehlersuche vereinfachen wollte, nein. Der Grund liegt darin, dass mehrere Personen an diesen Foliensätzen doktern wollen, und das womöglich zur gleichen Zeit. Da wäre eine Versionsverwaltung dringend angeraten, also hat der Herr über die Dokumentation meiner Firma, Anselm, Mercurial vorgeschlagen.
Meine wichtigsten Befehle beherrsche ich nun bereits im Schlaf:
$ cd doku/bind-beamer
Initialisieren
$ hg init
Dateien zur Verwaltung eintragen
$ hg add latex/bind-beamer.tex
Neue Version einpflegen
[Datei bearbeiten] $ hg commit -m “Erste Folie, der Tag beginnt”
Anschauen, was bereits getan wurde
$ hg history
Zu einer alten Version zurückkehren
[Datei kaputt gemacht] $ hg revert −r 3 latex/bind-beamer.tex
Sehr praktisch ist auch die Shell Erweiterung für die Tab Taste.
Schwieriger wird es sicher, wenn ich nicht mehr allein arbeite, sondern andere noch dazu kommen. Mal schauen. Eine gute deutsche Zusammenfassung bietet diese PDF Datei.
Update
Möchte man Projekte über SSH gemeinsam auf einem Server verwalten, so reicht es, wenn das Projekt zentral liegt. Dieses muss zuvor mittels „hg init“ initialisiert werden. Danach kann man folgende Befehle verwenden:
Rechner 1 und Rechner n
Zuerst vereinfachen wir das hochladen:
$ cat .hg/hgrc
[paths] default = ssh://user@1.2.3.4/~/latex/ default-push = ssh://user@1.2.3.4/~/latex/
[email] from = user@domain.foo
Dann klonen wir das Verzeichnis vom Server:
$ hg clone ssh://user@1.2.3.4/~/latex/
Danach das übliche Ändern und „commiten“. Dann können wir die Änderungen hochladen.
$ hg push
Um Änderungen wieder einzupflegen, reicht folgendes Kommando.
$ hg pull -u