Versionskontrollsoftware
Definition
Versionskontrollsoftware (VCS) ist ein nützliches Werkzeug, das den Arbeitsablauf eines kollaborativen Softwareteams unterstützt. Sie ist für Teams mit mehreren Entwicklern unerlässlich. Jedes Unternehmen setzt die VCS ein, die am besten zu seiner Strategie passt.
Nachfolgend finden Sie eine Liste weit verbreiteter VCS-Tools.
Git
Git ist eine der beliebtesten Versionskontrollsoftware auf dem heutigen Markt. Git ist ein schnelles und effizientes verteiltes Versionskontrollsystem, das leicht zu erlernen ist. Es kann Projekte jeder Größe bewältigen, von klein bis riesig. Die besonderen Merkmale von Git sind folgende: kostengünstige lokale Branches, praktische Staging-Bereiche und mehrere Arbeitsabläufe. Es ist kostenlose Open-Source-Software.

Nachteile von Git
Trotz seiner Vorteile hat Git auch einige Nachteile. Erstens ist die Unterstützung bei großen Binärdateien schwach. Die Interaktionsgeschwindigkeit kann aufgrund großer Repositories mit einer langen Historie leiden. Außerdem sind Befehle teilweise unvorhersehbar.
CVS
CVS (Concurrent Versions System) war historisch gesehen beliebt, ist aber heute weitgehend veraltet und wurde von modernen verteilten Systemen abgelöst. Es half Entwicklern, die Historie von Dateien und Dokumenten zu erfassen. Standardmäßig verarbeitet es Projekte von kleiner bis mittlerer Größe, und um größere zu unterstützen, muss es konfiguriert und erweitert werden. Sie können CVS auf fast jeder Hardwareplattform und jedem Betriebssystem verwenden. Es ist kostenlose Open-Source-Software.

Nachteile von CVS
Auch CVS hat einige Nachteile. Insbesondere wird die Integrität des Quellcode-Repositories nicht überprüft. Es gibt keine Unterstützung für atomare Commits und Checkouts sowie für Merge-Tracking und signierte Revisionen.
SVN
SVN (Apache Subversion) ist ein zentralisiertes Versionskontrollsystem, das im letzten Jahrzehnt weit verbreitet war. SVN verfügt über folgende Funktionen: versionierte Verzeichnisse, Unterstützung für atomare Commits, Merge-Tracking, das Vorhandensein von Kopieren, Löschen, Verschieben und Umbenennen von Versionen, Client-Server-Repository-Modell, Metadaten in Freitextform, vollständige MIME-Unterstützung, Dateisperren usw. Es ist kostenlose Open-Source-Software.

Nachteile von SVN
Die Zeitstempel von Dateiänderungen werden nicht gespeichert, es gibt einige Probleme bei der Dateinamen-Normalisierung und mangelnde Unterstützung für signierte Revisionen.
Mercurial
Mercurial ist eine verteilte Versionskontrollsoftware, die in Python geschrieben wurde. Diese schnell arbeitende Software unterstützt Projekte jeder Größe und Art. Ihre Oberfläche ist ziemlich vorhersehbar, was das Erlernen erleichtert. Sie unterstützt die folgenden Betriebssysteme: Unix-ähnliche Systeme, Windows und macOS. Sie unterstützt Binärdateien stark und verfügt über hervorragende Merge- und Branching-Funktionen. Es ist kostenlose Open-Source-Software.

Nachteile von Mercurial
Für alle Add-ons wird Python benötigt. Es erlaubt keine partiellen Checkouts und kommt nicht gut mit zusätzlichen Erweiterungen zurecht.
Monotone
Monotone ist ein verteiltes Versionskontrollsystem, das in C++ geschrieben wurde. Es ist ein transaktionales VCS für einzelne Dateien, das einen vollständig getrennten Betrieb ermöglicht. Das Merging ist historiensensitiv, Branches sind recht leichtgewichtig.
Monotone unterstützt eine produktive Peer-to-Peer-Synchronisation. Es versteht historiensensitives Merging, erfordert wenig Wartung, schätzt die Integrität der Code-Überprüfung und unterstützt 3-Wege-Merges. Es läuft auf mehreren Plattformen: Linux, Solaris, Mac OS X, Windows und anderen Unixen. Es ist kostenlose Open-Source-Software.

Nachteile von Monotone
Benutzer können von hinter einem Proxy aus keine Checkouts oder Commits durchführen, da das HTTP-Protokoll fehlt. Bei bestimmten Operationen werden Leistungsprobleme beobachtet. Das offensichtlichste davon ist der initiale Pull.
Hinweis: Monotone ist weitgehend aufgegeben und hat nur noch begrenzte moderne Relevanz.
Praxis
Welche der folgenden ist keine Funktion von Git als Versionskontrollsoftware?