GNU arch

Gnu Arch
GNU arch logo.png
Originalautor (en) Thomas Lord
Entwickler (en) Andy Tai
Endgültige Veröffentlichung
1.3.5 / 20. Juli 2006; Vor 16 Jahren
Geschrieben in C
Betriebssystem Linux, Fenster, Mac OS X
Typ Revisionskontrolle
Lizenz Gpl
Webseite www.Gnu.org/Software/gnu-arch/

Gnu Arch Software ist ein Distributed Revision Control System, das Teil der ist GNU -Projekt und unter dem lizenziert GNU Allgemeine öffentliche Lizenz. Es wird verwendet, um die Änderungen an einem Quellbaum zu verfolgen und Programmierern zu helfen, Änderungen zu kombinieren und auf andere Weise zu manipulieren, die von mehreren Personen oder zu unterschiedlichen Zeiten vorgenommen wurden.

Ab 2009 ist der offizielle Status von GNU Arch abgeschaltet, und es werden nur Sicherheitskorrekturen angewendet.[1] Basar (oder 'BZR') Wurde seitdem auch ein offizielles GNU -Projekt und kann daher als Ersatz für GNU Arch angesehen werden. Es ist keine Gabel von Bogen.[2]

Merkmale

Da ein verteiltes, dezentrales Versioning -System ist, ist jede mit Arch gespeicherte Revision einzigartig global identifizierbar. Eine solche Kennung kann in a verwendet werden verteilt Die Einstellung, um leicht zu verschmelzen, oder "Kirschpick" Änderungen aus vollständig unterschiedlichen Quellen.

Dezentralisiert zu sein bedeutet, dass kein zentraler Server erforderlich ist, für den Entwickler autorisiert werden müssen, um einen Beitrag zu leisten. Wie bei anderen Systemen wird in einem "offiziellen" Repository eine vollständige schreibgeschützte Kopie eines Projekts zugänglich gemacht Http, Ftp, oder Sftp; Aber dann werden die Mitwirkenden ermutigt, Änderungen vorzunehmen und sie in einem eigenen öffentlichen Archiv (Repository) zu veröffentlichen, damit der Chefentwickler Änderungen manuell in das offizielle Repository zusammenfassen kann.

Um das Verhalten zentraler Revisionskontrollsysteme zu simulieren, kann der Chefentwickler Shell -Zugriff (Zugriff aufnehmen (Ssh) oder Schreibzugriff (FTP, SFTP, Webdav) an einen Server, sodass autorisierte Benutzer sich auf einen zentralen Server festlegen können. Häufiger haben GNU-Arznagel-Projekte einen Vorsprung Wohlwollender Diktator Das verschmilzt Änderungen von Mitwirkenden.

GNU Arch hat mehrere andere Funktionen:

Atomic Commits
Commits sind alles oder nichts. Der Baum muss vor Beginn des Commits in ordnungsgemäßem Zustand sein, und die Commits sind für die Welt erst abgeschlossen. Wenn das Commit zuvor unterbrochen wird, bleibt er unsichtbar und muss vor dem nächsten Commit zurückgerollt werden. Dies vermeidet die Korruption des Archivs und der ausgecheckten Kopien anderer Benutzer.
Änderungset orientiert
Anstatt einzelne Dateien zu verfolgen (wie in Lebenslauf), GNU Arch Tracks Änderungen, die mit Patches ähneln. Jeder Änderungssatz ist eine Beschreibung des Unterschieds zwischen einem Quellbaum und einem anderen, und so kann ein Änderungssatz verwendet werden, um eine Überarbeitung aus einer anderen Revision zu erzeugen. Die Autoren werden aufgefordert, einen Komitee pro Funktion oder Bugfix zu verwenden.
Einfache Verzweigung
Die Verzweigung ist effizient und kann Archive überspannen. Ein Zweig (oder 'Tag') erklärt einfach die Überarbeitung der Vorfahren, und die Entwicklung wird von dort fortgesetzt.
Fortgeschrittene Verschmelzung
Aufgrund der dauerhaften Aufzeichnung aller Vorfahren und zusammengeführten Überarbeitungen kann die Zusammenführung berücksichtigt, welche Zweigstelle welchen Patch eine Drei-Wege-Verschmelzung auf der Grundlage einer gemeinsamen Revision der Vorfahren durchführen kann.
Kryptografische Unterschriften
Jeder Änderungssatz wird mit einem gespeichert Hash um versehentliche Korruption zu verhindern. Verwenden eines externen Datei -Signierprogramms (wie z. Gnupg oder ein anderes PGP Client), diese Hashes können optional auch unterschrieben werden, was eine nicht autorisierte Änderung verhindert, wenn das Archiv beeinträchtigt wird.
Umbenennung
Alle Dateien und Verzeichnisse können leicht umbenannt werden. Diese werden eher durch eine eindeutige ID als mit Namen verfolgt, sodass der Verlauf erhalten bleibt und Patches zu Dateien ordnungsgemäß zusammengeführt werden, selbst wenn sich Dateinamen in den Zweigen unterscheiden.
Metadatenverfolgung
Das Berechtigungen Von allen Dateien werden verfolgt. Symbolische Links werden unterstützt und genauso verfolgt wie Dateien und Verzeichnisse.

Geschichte und Betreuer

GNU Arch Version 1 und TLA

Der ursprüngliche Autor und Betreuer von Gnu Arch war Thomas Lord, der das Projekt im Jahr 2001 begann. Der Befehl zur Manipulation von Gnu Arch -Repositories ist tlaein Initialismus für Tom Lords Bogen. Lord begann Gnu Arch als Sammlung von Shell -Skripte eine Alternative zu CVs bereitstellen.[3] In 2003, Bogen wurde Teil der GNU Projekt.[4]

Das GNU Arch -Projekt gegabelt mehrmals, was zu beiden führt Canonical Ltd.'ist jetzt verlassen Baz Gabel und Walter Landry's ARX Projekt. Beide Gabeln provozierten eine feindliche Reaktion: Die ARX -Gabel war auf einen schwerwiegenden Streit in Richtung zurückzuführen, und Lord kritisierte den Ansatz von Canonical zur Ankündigung des BAZ -Projekts stark.[5]

Im August 2005 kündigte Lord an, dass er als Betreuer von Gnu Arch zurückgetreten sei und empfahl, das Baz zum Hauptprojekt GNU Arch zu werden.[6] Dies geschah jedoch nicht: Die Baz -Gabel wurde von kanonisch zugunsten des getrennten verlassen Basar Projekt,[7][8] mit der 1,5 -Veröffentlichung von Baz im Jahr 2006 verschrottet.[9] Im Oktober 2005 kündigte Andy Tai an, dass Lord und die Kostenlose Software -Stiftung hatte sein Angebot als Betreuer des Gnu Arch angenommen.[10] Tai fusionierte anschließend viele Merkmale von BAZ zurück in TLA,[9] Im März 2008 zeigte jedoch, dass TLA nicht mehr in aktiver Entwicklung stand und nicht mehr mit anderen Versionskontrollsystemen wettbewerbsfähig war.[1]

revc

revc war ein Prototyp -Revisionskontrollprojekt von Thomas Lord, den er beabsichtigte, GNU Arch 2.0 zu werden, der eine radikale Abkehr von TLA darstellt und viele Ideen aus dem zeichnet Git Revisionskontrollsystem.[11] Es wurde im Juni 2005 angekündigt,[11] Die erste Vorabveröffentlichung war im Juli[12] und der letzte im August, kurz vor Lords Rücktritt als Betreuer.[13] REVC hatte nur 10 Kernbefehle und Lord beabsichtigte, restriktive Namespaces, komplizierte Dateibenennungskonventionen zu beseitigen und die Geschwindigkeit zu erhöhen.[12]

Ab 2008 ist die letzte Vorabveröffentlichung, 0,0 x 2, von revc noch verfügbar[14] Und Lord interessiert sich immer noch für einige der Ideen im Gnu Arch, verfügt jedoch nicht über die Ressourcen, um die Entwicklung von RevC wieder aufzunehmen.[15]

Kritik

Die vielleicht häufigste Kritik am Gnu Arch ist, dass es schwierig zu lernen ist, selbst für Benutzer, die Erfahrung mit anderen haben SCM Systeme. Insbesondere hat GNU Arch eine große Anzahl von Befehlen, die für neue Benutzer und einige Designelemente einschüchternd sein können, und möglicherweise zu stark durchdrungen, Lords Geschmack in Versionskontrollpraktiken durchzusetzen.[16][17]

Einige kritisieren auch GNU Arch für die Verwendung von sehr ungewöhnlichen Dateien -Benennungskonventionen ("Funkyfilenamen" Bei der Wayback -Maschine (Archiviert 8. August 2007)), was Schwierigkeiten haben kann, es in Skripten zu verwenden, einige Muschelnund im Portieren auf Nicht-Unix-Betriebssysteme. Gnu Arch wurde dafür kritisiert, dass er eine langsame Laufzeit als Teil einer Entwurfsentscheidung zur Verringerung der internen Codekomplexität hat.[18]

Siehe auch

Verweise

  1. ^ a b Tai, Andy (2008-03-28). "Re: revc". Gnu-Arch-Benutzer (Mailingliste). Abgerufen 2008-06-17.
  2. ^ "Geschichte des Basars". Abgerufen 20. Mai 2014.
  3. ^ Moffit, Nick (2004-11-01). "Revisionskontrolle mit Arch: Einführung in Arch". Linux Journal. Abgerufen 2008-06-18.
  4. ^ Lord, Tom (2003-07-13). "GNU, Doc Foo, kurzfristige Pläne, Hacking-Vorschläge, Geld". Erzbenutzer (Mailingliste). Abgerufen 2008-06-18.[Permanent Dead Link]
  5. ^ Lord, Thomas (2004-10-31). "Gemeinschaftssinn". Gnu-Arch-Benutzer (Mailingliste). Abgerufen 2008-06-17.
  6. ^ Lord, Thomas (2005-08-15). "Gnu Erzwartungspunkt". Gnu-Arch-Benutzer (Mailingliste). Abgerufen 2008-06-17.
  7. ^ "Baz1x - Bazaar -Versionskontrolle". 2006-07-24. Abgerufen 2008-01-17.
  8. ^ Arbash Meinel, John; Aaron Bentley; Martin Pool; Mark Shuttleworth (2006-07-26). "Historyofbazaar". Abgerufen 2008-02-20.
  9. ^ a b Collins, Robert (2006-06-30). "1,5 veröffentlichen". bazaar-alt (Mailingliste). Archiviert von das Original Am 2011-05-12. Abgerufen 2007-06-16.
  10. ^ Tai, Andy (2005-10-27). "Re: Gute Nachrichten über Gnu Arch!". Gnu-Arch-Benutzer (Mailingliste). Abgerufen 2008-06-17.
  11. ^ a b Lord, Thomas (2005-06-20). "Arch 2.0 Codebasis in Arbeit". gnu-arch-dev (Mailingliste). Abgerufen 2008-06-17.[Permanent Dead Link]
  12. ^ a b Lord, Thomas (2005-07-08). "GNU Arch 2.0 - Erste Quelle". gnu-arch-dev (Mailingliste). Archiviert von das Original Am 2011-05-17. Abgerufen 2008-06-17.
  13. ^ Lord, Thomas (2005-08-01). "Arch 2.0 Release (revc.0.0x2)". Gnu-Arch-Benutzer (Mailingliste). Abgerufen 2008-06-17.
  14. ^ Wandrebeck, Laurent (2008-03-26). "revc". Gnu-Arch-Benutzer (Mailingliste). Abgerufen 2008-06-17.
  15. ^ Lord, Thomas (2008-03-28). "Re: revc". Gnu-Arch-Benutzer (Mailingliste). Abgerufen 2008-06-17.
  16. ^ Pool, Martin (2004-06-21). "Was ist los mit Arch?". Archiviert von das Original Am 2012-07-14. Abgerufen 2008-06-18.
  17. ^ Pool, Martin (2004-09-26). "Tom Lord Interview und verwandte Dinge". Archiviert von das Original Am 2012-07-13. Abgerufen 2008-06-18. Frühere Versionen waren sehr stark an Projekte eingebunden, die so ausgeführt wurden, wie Tom sie wollte: Wierd [sic] -Fateikonventionen, nur von sauberen Bäumen usw.
  18. ^ Weimer, Florian (2004-06-09). "Einige Probleme mit Gnu Arch". Abgerufen 2008-06-18.

Externe Links