Veröffentlichung des Quellcodeverwaltungsystems Git 2.50

Die Veröffentlichung des verteilten Quellcodeverwaltungssystems Git 2.50 ist erfolgt. Git zeichnet sich durch hohe Leistung aus und bietet Werkzeuge fĂŒr die nicht-lineare Entwicklung, die auf Branching und Merge-Strategien basieren. Um die IntegritĂ€t der Historie zu gewĂ€hrleisten und RĂŒckwirkende Änderungen zu vermeiden, wird ein implizites Hashing der gesamten vorherigen Historie in jedem Commit verwendet, sowie die digitale Signatur einzelner Tags und Commits durch die Entwickler. Der Git-Code wird unter der GPLv2+-Lizenz verbreitet.

Im Vergleich zur vorherigen Version wurden in die neue Version 621 Änderungen ĂŒbernommen, die mit der UnterstĂŒtzung von 98 Entwicklern, von denen 35 erstmals an der Entwicklung beteiligt sind, durchgefĂŒhrt wurden. Die wichtigsten Neuerungen:

  • Die Möglichkeit, unzugĂ€ngliche Objekte in mehrere Pack-Dateien („cruft packs“) zu unterteilen, die im Repository keine Verlinkungen haben (weder durch Branches noch durch Tags), wurde erweitert. Der Einsatz mehrerer kleiner Pack-Dateien anstelle einer großen reduziert die E/A-Operationen erheblich, wenn es darum geht, Repositories mit vielen unzugĂ€nglichen Objekten neu zu verpacken, da nicht alle Daten bei jeder Neuverpackung ĂŒberschrieben werden mĂŒssen.

    In der neuen Version wird die Option „—combine-cruft-below-size“ angeboten, mit der Sie bestehende Pack-Dateien zusammenfassen können, deren GrĂ¶ĂŸe einen bestimmten Wert nicht ĂŒberschreitet. Im Gegensatz zur zuvor verfĂŒgbaren Option „—max-cruft-size“ schrĂ€nkt die neue Option „—combine-cruft-below-size“ die maximale GrĂ¶ĂŸe der resultierenden Pack-Datei nicht ein, was eine effizientere ZusammenfĂŒhrung von Pack-Dateien in Repositories mit vielen unzugĂ€nglichen Objekten, die in mehreren Pack-Dateien verteilt sind, ermöglicht.

  • Es wurde experimentelle UnterstĂŒtzung fĂŒr inkrementelle Updates von Mehrpaket-Indizes (MIDX) hinzugefĂŒgt, bei denen jede Schicht des MIDX-Indexes mit Informationen ĂŒber die VerfĂŒgbarkeit von Objekten in einer separaten Bitmap-Datei abgelegt wird. In sehr großen Repositories ermöglicht die implementierte Form der Indizes, neue Bitmap-Karten zur VerfĂŒgbarkeit von Objekten schnell und effizient hinzuzufĂŒgen, wĂ€hrend Commits eingehen.
  • Die alte Engine fĂŒr das ZusammenfĂŒhren von Änderungen, „recursive“, wurde aus dem Code entfernt und durch die vollstĂ€ndig ĂŒberarbeitete Engine „ORT“ (Ostensibly Recursive’s Twin) ersetzt, die leistungsfĂ€higer, funktioneller und wartungsfreundlicher ist. ORT ermöglicht die ÜberprĂŒfung der Möglichkeit, zwei Objekte zusammenzufĂŒhren, ohne neue Objekte im Repository zu erstellen (bei der alten Engine war es erforderlich, den Befehl „git merge-tree —write-tree“ auszufĂŒhren, der neue Objekte im Repository speicherte). In Git 2.50 wurde in dem Befehl merge-tree die Option „—quiet“ implementiert, mit der die Möglichkeit der ZusammenfĂŒhrung anhand des RĂŒckgabecodes ĂŒberprĂŒft werden kann, ohne Daten im Repository zu speichern.
  • In „git cat-file —batch“ und Ă€hnlichen Befehlen wurde die Option „—filter“ hinzugefĂŒgt, die es ermöglicht, bestimmte Objekte bei der AusfĂŒhrung der Operation zu ĂŒberspringen. git cat-file —batch-check=’%(objectname)’ —filter=’object:type=tree’
  • Im Befehl „git maintenance“ wurden drei neue Aktionen implementiert: worktree-prune, rerere-gc und reflog-expire. Die Aktion worktree-prune dient zur Entfernung veralteter oder beschĂ€digter ArbeitsbĂ€ume (worktrees) im Repository. Die Aktion rerere-gc entfernt alte EintrĂ€ge, die nach der Behebung von Merge-Konflikten zurĂŒckgeblieben sind. Die Aktion reflog-expire entfernt nicht mehr verfĂŒgbare, veraltete Objekte aus dem Reflog.
  • Der Befehl „git reflog drop“ wurde hinzugefĂŒgt, der alle Reflog-Daten fĂŒr den angegebenen Branch entfernt.
  • Die Verarbeitung und Nutzung von Referenzen wurde optimiert, beispielsweise durch die Implementierung einer Caching-Lösung fĂŒr ReferenzprĂ€fixe, das Entfernen ĂŒberflĂŒssiger PrĂŒfungen beim AusfĂŒhren des Befehls „git update-ref“ und die Verbesserung der Effizienz bei der Suche nach bestehenden Iteratoren fĂŒr Referenzen.
  • FĂŒr die cURL-Bibliothek wurden die KeepAlive-Einstellungen hinzugefĂŒgt: http.keepAliveIdle, http.keepAliveInterval und http.keepAliveCount.
  • Im Befehl „git rev-list“ wurde die Möglichkeit implementiert, im maschinenlesbaren Format auszugeben, bei dem jedes Feld durch das Zeichen NUL getrennt ist.
  • Die Perl-Sprache wurde aus den AbhĂ€ngigkeiten entfernt, die fĂŒr die Dokumentationswerkzeuge und die AusfĂŒhrung des Testsets («make test») erforderlich sind. Viele Perl-Einzeiler in den Tests wurden durch Shell-Funktionen ersetzt oder in C neu geschrieben.
  • Ein Userdiff-Handler fĂŒr das Konfigurationsdateiformat «.ini» wurde hinzugefĂŒgt.
  • Die UnterstĂŒtzung des Outlook-SMTP-Servers im Befehl send-email wurde verbessert.

Quelle: opennet.ru

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster