[[Inhaltsverzeichnis(1)]] 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 [wikipedia: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. [:Archiv/Subversion: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 [https://better-scm.shlomifish.org/comparison/comparison.html better-scm] {en}. 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. {{{#!vorlage Tabelle 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::Launchpad] {en}. 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 [https://www.breezy-vcs.org/ Breezy] {en}. +++ [:Git:] '''git''' Ein dezentrales Kontrollsystem, das unter anderem für den Linux-Kernel und vom Xfce-Projekt verwendet wird. +++ [:Archiv/Mercurial:Mercurial] '''mercurial''' (''universe'') Verteiltes System, das auf Geschwindigkeit getrimmt ist. Leicht zu benutzen, die meisten Befehle sind CVS-Benutzern vertraut. +++ [:Archiv/Subversion:Subversion] '''subversion''' Subversion ist ein Verwaltungssystem mit zentralem Projektarchiv. +++ +++ [sourceforge2:aegis:Aegis] {en} '''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. +++ [https://www.gnu.org/software/gnu-arch/ GNU arch] {en} '''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. +++ [http://darcs.net darcs] {en} '''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. +++ [https://www.monotone.ca/ Monotone] {en} '''monotone''' (''universe'') In Monotone werden die Änderungen gesammelt, und jeder Entwickler kann sich die Änderungen, die er braucht "aussuchen". +++ [http://elixus.org svk] {en} '''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 [https://dwheeler.com/essays/scm.html Kommentare] {en} 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. {{{#!vorlage Tabelle Name Frontend für Paket Website +++ [#Cervisia Cervisia] CVS '''cervisia''' (''universe'') [http://www.kde.org/apps/cervisia/ Cervisia] {en} +++ [#ecCVS ecCVS] CVS - [sourceforge2:eccvs:ecCVS] {en} +++ [#TkCVS TkCVS] CVS '''tkcvs''' (''universe'') [http://www.twobarleycorns.net/tkcvs.html TkCVS] {en} +++ [#RapidSVN RapidSVN] Subversion '''rapidsvn''' (''universe'') [http://rapidsvn.tigris.org/ RapidSVN] {en} +++ [:Archiv/Subversion#kdesvn:kdesvn] Subversion '''kdesvn ''' (''universe'') [http://www.alwins-world.de/programs/kdesvn/ Kdesvn] {en} +++ PySVN Workbench Subversion '''svn-workbench''' (''universe'') [http://pysvn.tigris.org/docs/WorkBench.html WorkBench] {en} +++ [:Nautilus:] SVN-Script Subversion '''nautilus-script-collection-svn''' (''universe'') [http://marius.scurtescu.com/2005/08/24/nautilus_scripts_for_subversion Nautilus Scripts for Subversion] {en} +++ [:RabbitVCS:] Subversion '''rabbitvcs''' ([https://launchpad.net/~rabbitvcs/+archive/ppa RabbitVCS-Team-PPA]) http://rabbitvcs.org/ {en} +++ QCT GUI commit tool Mercurial, Subversion '''qct''' (''universe'') [http://qct.sourceforge.net/ qct] {en} +++ [:Archiv/Mercurial/#Installation:TortoiseHg] (Nautilus-Plugin) Mercurial '''tortoisehg tortoisehg-nautilus''' (''universe'') [https://tortoisehg.bitbucket.io/de] +++ Bzr-Gtk Bazaar '''bzr-gtk''' (''universe'') [http://wiki.bazaar.canonical.com/bzr-gtk bzr-gtk] {en} +++ Bazaar Explorer Bazaar '''bzr-explorer''' (''universe'') [http://doc.bazaar.canonical.com/explorer/en/ Bazaar Explorer] {en} +++ Zahlreiche Git siehe [:Grafische_Oberflächen_für_Git:] [https://git-scm.com/downloads/guis Git GUIs] {en} }}} == Cervisia == [[Anker(Cervisia)]] Cervisia ist die graphische Oberfläche zu CVS, die in KDE integriert ist. == ecCVS == [[Anker(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 [https://sourceforge.net/projects/eccvs/files// Downloadseite] {en} . Die Vorgehensweise zur Installation von Programmen, die im Quellcode vorliegen wird in [:Programme_kompilieren:Programme kompilieren] beschrieben. Danach findet sich ecCVS im GNOME-Menü unter ''"Anwendungen -> Entwicklung -> eccvs"''. == RapidSVN == [[Anker(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 [https://www.wxwidgets.org/ wxWidgets] {en} Toolkit) zu sein. == TkCVS == [[Anker(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. * [github:lelit/tailor:Tailor] {en} ermöglicht es, Änderungen zwischen verschiedenen Versions-Systemen auszutauschen beziehungsweise ganze Archive zu konvertieren. Es liegt als Paket '''tailor''' (''universe'') vor. ## * [:Archive/Gitolite:] - Verwaltung eines Git-Servers * [https://gource.io/ gource] {en} - Git, SVN, Mercurial und Bazaar grafisch visualisieren # tag: Programmierung, Versionsverwaltung