GNU arch
aus Wikipedia, der freien Enzyklopädie
GNU arch ist eine Software zur Versionskontrolle, vom Zweck her ähnlich wie CVS, SCCS oder Subversion, um nur einige zu nennen. Versionskontrollsysteme werden u. A. eingesetzt, um die Veränderungen eines Quellcodebaumes festzuhalten und Entwicklern die Möglichkeit zu geben, gleichzeitig an Quellcode zu arbeiten.
Inhaltsverzeichnis |
[Bearbeiten] Features
GNU arch verfolgt einen etwas anderen Ansatz als die meisten anderen Versionskontrollen. Jede Revision, d. h. Änderung am Quelltext, ist eindeutig identifizierbar. Dadurch sind Zusammenführungen von an sich komplett ungleichartigen Quellcodebäumen möglich.
GNU arch operiert dezentral, das bedeutet dass es keine Notwendigkeit für einen zentralen Server mit getrennter Benutzerverwaltung gibt. Stattdessen stellt ein sogenannter Head-Developer, also ein Entwickler an zentraler Position im Projekt, einfach eine Kopie des Projektes via HTTP, FTP, SFTP oder jedem anderen Protokoll das sich für Dateitransfer eignet, zur Verfügung. Entwickler, die an dem Projekt mitarbeiten möchten, holen sich diese Kopien und erstellen ihre Änderungen, welche an den Head-Developer zurückgesandt werden und von ihm in den offiziellen Quellcodebaum eingepflegt werden.
Um das Verhalten eines zentralisierten Versionskontrollsystems nachzuahmen, könnte der Head-Developer den Mitentwicklern z. B. Shellzugang via SSH bereitstellen. Diese können dann, nach erfolgter Authentifizierung, über Schreibzugriff im Dateisystem den Quellcode direkt ändern.
Andere Features von GNU arch:
- Atomare Commits: Ein Commit findet nur als Transaktion statt, schlägt ein Teil des Commits fehl werden alle Änderungen zurückgenommen. Dies garantiert konsistente Commits.
- Orientierung an changesets: GNU arch verwaltet sogenannte changesets, also Änderungen an mehreren Dateien, anstelle von einzelnen Dateien
- Leichtes und fortschrittliches branching, also das Abspalten und späterem Zusammenfügen von Quellcodebaum-Teilen zwecks gleichzeitiger Bearbeitung
- Fortgeschrittenes Zusammenführen von Changesets
- Kryptographische Signaturen zwecks Authentifizierung
- Datei- und Verzeichnisumbenennung (eine Schwachstelle von CVS)
- Verwaltung von symbolischen Links
[Bearbeiten] Autor
Der Hauptentwickler und Verwalter von GNU arch ist Tom Lord. GNU arch wird auch manchmal tla genannt, einem Akronym für Tom Lord's Arch. Lord begann mit der Entwicklung von GNU arch als einer Ansammlung von Shellscripten als Alternative zu CVS. 2003 wurde arch ein Teil des GNU-Projekts.
[Bearbeiten] Kritik
Die häufigste Kritik an arch ist seine steile Lernkurve, sogar für Benutzer die bereits Erfahrung mit anderen Versionskontrollsystemen haben. Arch's große Anzahl von Befehlen kann auf neue Benutzer abschreckend wirken.
Auch die etwas ungewöhnliche Dateinamenskonvention [1] stößt auf Kritik. Durch sie wird die Verarbeitung von arch-Dateien in Shellscripts sowie die Portierung von arch auf andere Betriebssysteme erschwert. Auch hat arch den Ruf, nicht sehr gut auf großen Quellcodebäumen zu skalieren.
Verteidiger von arch führen an, dass sich das Projekt noch in aktiver Entwicklung befindet und es sich zusehends stabilisiert.
[Bearbeiten] Alternative Versionen
Das ArX[2] und Bazaar[3] VCS sind Abspaltungen (forks) von arch.
[Bearbeiten] Weblinks
- Die GNU-Arch-Homepage (engl.)
- Das arch Wiki (engl.)
- Ein ausführliches Tutorial zu arch (engl.)
- LWN.net-Artikel über arch (engl.)