Veröffentlichung des git-kompatiblen Versionsverwaltungssystems Got 0.80

Die Entwickler des OpenBSD-Projekts haben die Version des Versionskontrollsystems Got 0.80 (Game of Trees) veröffentlicht, bei dessen Entwicklung der Schwerpunkt auf der Einfachheit der Gestaltung und Nutzung liegt. Zur Speicherung von versionierten Daten verwendet Got ein speichersystem, das mit dem Festplattformat von Git-Repositories kompatibel ist, was die Arbeit mit dem Repository mithilfe der Werkzeuge von Got und Git ermöglicht. Zum Beispiel können mit Git Arbeiten ausgeführt werden, die in Got nicht implementiert sind. Der Code wird unter der freien Lizenz ISC verbreitet.

Das Projekt hat sich zum Ziel gesetzt, die Entwicklung von OpenBSD unter Berücksichtigung der Besonderheiten des Projekts zu begleiten. Unter anderem werden in Got die in OpenBSD geltenden Sicherheitsstandards angewendet (z. B. Trennung von Rechten sowie Verwendung der Aufrufe pledge und unveil) sowie der Stil der Code-Überarbeitung. Das Werkzeug ist auf einen Entwicklungsprozess mit einem gemeinsamen zentralen Repository und lokalen Branches für Entwickler ausgelegt, mit externem Zugang über SSH und der Überprüfung von Änderungen per E-Mail.

Für die Versionsverwaltung steht das Tool got mit einem vertrauten Befehlssatz zur Verfügung. Um die Arbeit zu erleichtern, unterstützt das Tool nur das minimal benötigte Set an Befehlen und Optionen, das ausreicht, um grundlegende Operationen ohne unnötige Komplikationen durchzuführen. Für erweiterte Operationen wird die Verwendung des herkömmlichen git empfohlen. Die Operationen zur Verwaltung des Repositories wurden in das separate Tool gotadmin ausgelagert, das Aufgaben wie die Initialisierung des Repositories, das Packen von Indizes und das Reinigen von Daten übernimmt. Zum Navigieren durch die Daten im Repository wird die Weboberfläche gotwebd und das Tool tog für die interaktive Anzeige des Inhalts des Repositories über die Kommandozeile angeboten.

Unter den hinzugefügten Änderungen:

  • Im Serverprozess gotd, der den Netzwerkzugang zum Repository bereitstellt, wurde die Möglichkeit hinzugefügt, Regeln für die Autorisierung von Lese- und Schreibvorgängen in Bezug auf einzelne Repositories hinzuzufügen.
  • In gotd wurden die neuen Prozesse „listen“ und „session“ hinzugefügt, um Anfragen an den Unix-Socket zu verfolgen und Sitzungen zu verarbeiten. Die Authentifizierungsoperationen wurden auch in einen separaten Kindprozess ausgelagert.
  • Die Isolierung des Hintergrundprozesses gotd wurde von chroot auf die Verwendung des Systemaufrufs unveil umgestellt. Die Einschränkung, dass nur Benutzer aus der Gruppe gotsh mit gotd verbunden werden können, wurde aufgehoben.
  • In gotd wurde eine Begrenzung der Anzahl der Verbindungen in Bezug auf die UID implementiert.
  • In gotd.conf wurden Einstellungen zur Verwaltung von Verbindungen hinzugefügt, und der Parameter unix_socket wurde durch listen on ersetzt.
  • Der Zugriff auf Informationen, die beim Start von ‘gotctl info’ angezeigt werden, wird jetzt nur dem Benutzer root gewährt.
  • Die Entwicklung der CGI-Bindings für got — gotweb — wurde eingestellt. Stattdessen sollte für die Web-Oberfläche die FastCGI-Implementierung von gotwebd verwendet werden, deren Möglichkeiten erheblich erweitert wurden. Zum Beispiel wurde in gotwebd ein Template-System zur Vereinfachung der Anpassung des Seitenlayouts hinzugefügt, ein RSS-Feed zur Verfolgung von Tags eingeführt, und die Anzeige von BLOBs und Commit-Listen wurde verbessert.
  • In den Befehlen got log, got diff und tog diff wurde die Unterstützung für die Ausgabe im diffstat-Format implementiert.
  • Der Speicherverbrauch wurde durch die Begrenzung der Anzahl der im Objekt-Cache gespeicherten Tags reduziert.
  • In got patch wurde die Entfernung von Binärdateien realisiert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4