ubuntuusers.de

Versionsverwaltung

Häufig arbeiten mehrere Leute zusammen an einem Projekt. Um dabei die Übersicht zu behalten und die Änderungen der Einzelnen gut miteinander kombinieren zu können, wird in den allermeisten Fällen eine Versionsverwaltung (englisch: "Source-Code-Management-System") eingesetzt. Auch für einen einzelnen Entwickler kann eine Übersicht über die Entwicklung seines Projektes sinnvoll sein.

Während es früher nur zentrale Systeme gab, wie z.B. Subversion, sind in den letzten Jahre dezentrale System wie Git in den Vordergrund gerückt.

Übersicht der Management-Systeme

Eine gute Übersicht zu den verfügbaren Systemen gibt es bei better-scm 🇬🇧. Es folgt eine kurze Liste der Systeme, die in den offiziellen Paketquellen vorliegen. Dabei werden zuerst Systeme aufgeführt, zu denen es hier im Wiki bereits Artikel gibt.

Name Paket Erläuterungen
Bazaar bzr Bazaar ist ein von Canonical, dem Sponsor von Ubuntu, entwickeltes System zur Versionsverwaltung von Dateien. Dabei ist es eine gute Alternative zu Programmen wie Subversion. Eingesetzt wird es derzeit vor allem bei Launchpad 🇬🇧. Bazaar wird etwa seit 2014 nicht mehr aktiv weiterentwickelt, es gibt nur noch vereinzelte Aktualisierungen. Es gibt jedoch seit Mai 2017 ein Fork mit dem Namen Breezy 🇬🇧.
Git git Ein dezentrales Kontrollsystem, das unter anderem für den Linux-Kernel und vom Xfce-Projekt verwendet wird.
Mercurial mercurial (universe) Verteiltes System, das auf Geschwindigkeit getrimmt ist. Leicht zu benutzen, die meisten Befehle sind CVS-Benutzern vertraut.
Subversion subversion Subversion ist ein Verwaltungssystem mit zentralem Projektarchiv.
Aegis 🇬🇧 aegis (universe) Schwerpunkt auf Projektarbeit im Team. Es arbeitet gut mit anderen Programmen wie Make zusammen und stellt eine Möglichkeit zur Verfügung den Code Tests zu unterziehen, bevor er tatsächlich übernommen wird. Eine Prämisse ist eine zu jedem Zeitpunkt funktionierende "Baseline". Außerdem wird Wert auf Sicherheit gelegt.
GNU arch 🇬🇧 tla (universe) ist ein verteiltes System und die Grundlage oder Inspiration für viele andere Versionskontrollsysteme. Es ist jedoch recht komplex in der Handhabung, und wurde von Gnu Bazaar abgelöst.
darcs 🇬🇧 darcs (universe) ebenfalls ein verteiltes Management System. Es basiert auf der "Theory of Patches", die ein mathematisches Modell für die Änderungen im Code darstellt. Dementsprechend gibt es eigentlich keine "Versionen" an sich sondern nur Sammlungen von "patches". Diese Patches sind nicht an die einzelnen Dateien gebunden, sondern basieren immer auf dem gesamten Archiv.
Monotone 🇬🇧 monotone (universe) In Monotone werden die Änderungen gesammelt, und jeder Entwickler kann sich die Änderungen, die er braucht "aussuchen".
svk 🇬🇧 svk (universe) basiert auf Subversion und hat zum Ziel, die Vorteile der Verteilten Systeme mit diesem zu kombinieren.

Diese Liste ist sicherlich nicht komplett, aber sie stellt einen recht guten Ausgangspunkt für eigene Erkundungen dar. Schließlich noch einige Kommentare 🇬🇧 zu den verschiedenen Systemen (leider nur in Englisch).

Übersicht über graphische Oberflächen

Es folgt eine Liste von graphischen Oberflächen, die hier zusammengetragen werden können. Jeweils unter Angabe des zugrunde liegenden Systems (Backend), und falls ein Paket in den Ubuntu-Repositorys zu finden ist, wie dieses heißt, und wo es zu finden ist.

Name Frontend für Paket Website
Cervisia CVS cervisia (universe) Cervisia 🇬🇧
ecCVS CVS - ecCVS 🇬🇧
TkCVS CVS tkcvs (universe) TkCVS 🇬🇧
RapidSVN Subversion rapidsvn (universe) RapidSVN 🇬🇧
kdesvn Subversion kdesvn (universe) Kdesvn 🇬🇧
PySVN Workbench Subversion svn-workbench (universe) WorkBench 🇬🇧
Nautilus SVN-Script Subversion nautilus-script-collection-svn (universe) Nautilus Scripts for Subversion 🇬🇧
RabbitVCS Subversion rabbitvcs (RabbitVCS-Team-PPA) http://rabbitvcs.org/ 🇬🇧
QCT GUI commit tool Mercurial, Subversion qct (universe) qct 🇬🇧
TortoiseHg (Nautilus-Plugin) Mercurial tortoisehg tortoisehg-nautilus (universe) https://tortoisehg.bitbucket.io/de
Bzr-Gtk Bazaar bzr-gtk (universe) bzr-gtk 🇬🇧
Bazaar Explorer Bazaar bzr-explorer (universe) Bazaar Explorer 🇬🇧
Zahlreiche Git siehe Grafische Oberflächen für Git Git GUIs 🇬🇧

Cervisia

Cervisia ist die graphische Oberfläche zu CVS, die in KDE integriert ist.

ecCVS

ecCVS ist ein graphisches Frontend für CVS, das seinen Schwerpunkt auf eine einfache und intuitive Benutzeroberfläche legt. Es richtet sich vor allem an Einsteiger. Die Oberfläche ist einem allgemeinen Dateibrowser wie dem Nautilus sehr ähnlich.

Installation

Leider gibt es von ecCVS kein Ubuntu-Paket, man muss sich das Programm also selbst installieren. Herunterladen lässt es sich von der Downloadseite 🇬🇧 . Die Vorgehensweise zur Installation von Programmen, die im Quellcode vorliegen wird in Programme kompilieren beschrieben. Danach findet sich ecCVS im GNOME-Menü unter "Anwendungen → Entwicklung → eccvs".

RapidSVN

RapidSVN ist ein graphischer Client für Subversion, mit den Ansprüchen

  • einfach (stellt ein einfaches Interface für die Subversion Funktionen zur Verfügung)

  • effizient (leicht für Einsteiger, aber flexibel genug um die Produktivität erfahrener Anwender zu erhöhen)

  • und schnell (es ist komplett in C++ geschrieben und verwendet das wxWidgets 🇬🇧 Toolkit)

zu sein.

TkCVS

TkCVS/TkSVN stellt ein weiteres graphisches Frontend für CVS dar. In der neuen Version 8 unterstützt es neben CVS auch Subversion. Es ist in den Ubuntu-Paketquellen zu finden.

Weitere Hilfsmittel

  • Gobby ist ein kollaborativer Editor, der sich sehr gut für die gleichzeitige Arbeit an einem Dokument eignet.

  • Tailor 🇬🇧 ermöglicht es, Änderungen zwischen verschiedenen Versions-Systemen auszutauschen beziehungsweise ganze Archive zu konvertieren. Es liegt als Paket tailor (universe) vor.

  • gource 🇬🇧 - Git, SVN, Mercurial und Bazaar grafisch visualisieren

Diese Revision wurde am 7. Februar 2020 17:32 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Versionsverwaltung, Programmierung