© Liashko/Shutterstock.com
Verteilte Versionskontrolle mit Mercurial

Mit vereinten Kräften


Verteilte Versionskontrollsysteme sind eine der wichtigsten Tools, die Entwicklern heutzutage zur Verfügung stehen. Eines der modernsten Systeme dieser Art stellt Mercurial dar, das in diesem Artikel vorgestellt wird.

Ein Großteil der Arbeiten am Computer beinhaltet, dass die Arbeitsergebnisse in Dateien gespeichert werden. Selten entstehen die entsprechenden elektronischen Dokumente in einer einzelnen Bearbeitungssitzung, meistens werden die Dateien nach und nach erweitert (ein Programmierprojekt wird praktisch nie an einem Tag fertig, stattdessen wird inkrementell immer wieder Code hinzugefügt und geändert). Ist ein bestimmter Stand der Bearbeitung eines Projekts erreicht, ist es wünschenswert, ihn so speichern zu können, dass er später im Bedarfsfall wieder hergestellt werden kann, z. B. nach einer Codeänderung der jeweils letzte lauffähige Stand. Tatsächlich geht es auch selten um Stände von einzelnen Dateien, sondern um Stände von Dateimengen (Konfigurationen). Und oft wird an diesen Dateimengen nicht nur von einer Person an einem Arbeitsplatz gearbeitet, sondern von verschiedenen Personen an verschiedenen Arbeitsplätzen, und ein paralleler Zugriff soll unterstützt werden. Einen Versuch zur Lösung stellen (verteilte) Versionskontrollsysteme dar.

Das Problem kennt jeder, der mit Computern Dateien erstellt, insbesondere wenn er/sie programmiert, d. h. mit Quelltextdateien arbeitet. Ich erreiche einen bestimmten Stand (z. B. ein kompilierbares Programm, das bestimmte Tests passiert, einen abgestimmten Stand eines Projektdokuments o. Ä.), und möchte diesen dauerhaft festhalten. Was ich mir in diesem Zusammenhang wünschen würde, wäre:

  • dass ich jederzeit zu dem ursprünglichen Zustand meines Dokuments (oder meiner Dokumente) zurückkehren kann.

  • dass ich die Änderungen zwischen den verschiedenen Versionen der Dokumente, die ich erstellt habe, nachvollziehen kann.

  • dass ich nachvollziehen kann, wer welche Änderungen vorgenommen hat.

  • dass ich die Änderungen verschiedener Beteiligter zu einem konsistenten Stand zusammenführen kann.

Diese Anforderungen zu erfüllen, ist die Aufgabe der verschiedenen Ansätze zur Versionskontrolle.

Versionskontrolle „für Arme“ – Speichern von Kopien

Dieser Ansatz ist so naheliegend, dass jeder ihn wahrscheinlich schon verwendet hat. Wenn ein bestimmter Stand einer Datei erreicht ist, speichere ich einfach eine Sicherungskopie meines Stands. Um nicht in völliges Chaos zu versinken, empfiehlt es sich, ein durchgängiges Dateinamens...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang