Veröffentlichung des Quelltextverwaltungssystems Git 2.50

Die Veröffentlichung der verteilten Systemverwaltung von Quelltexten Git 2.50 ist erfolgt. Git zeichnet sich durch hohe Leistung aus und bietet Werkzeuge fĂŒr nichtlineare Entwicklungen auf der Basis von Branching und Merging. Um die IntegritĂ€t der Geschichte und die Resistenz gegen nachtrĂ€gliche Änderungen zu gewĂ€hrleisten, wird eine implizite Hashing der gesamten vorherigen Geschichte in jedem Commit verwendet, sowie die BestĂ€tigung durch digitale Signaturen der Entwickler fĂŒr einzelne Tags und Commits. Der Code von Git wird unter der Lizenz GPLv2+ verbreitet.

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

  • Die Möglichkeit, in mehrere Pack-Dateien der Basis unerreichbarer Objekte („cruft packs“) zu unterteilen, auf die im Repository keine Verweise existieren (keine Verweise von Zweigen oder Tags). Die Verwendung mehrerer kleiner Pack-Dateien anstelle einer großen ermöglicht eine erhebliche Reduzierung der Ein-/Ausgabe-Operationen beim Repacken von Repositories mit einer großen Anzahl unerreichbarer Objekte, da fĂŒr jede Repack-Operation keine vollstĂ€ndigen Daten ĂŒberschrieben werden mĂŒssen.

    In der neuen Version wird die Option „—combine-cruft-below-size“ angeboten, mit der bestehende Pack-Dateien zusammengefĂŒhrt werden können, deren GrĂ¶ĂŸe einen festgelegten Wert nicht ĂŒberschreitet. Im Gegensatz zur frĂŒher verfĂŒgbaren Option „—max-cruft-size“ begrenzt die neue Option „—combine-cruft-below-size“ die maximale GrĂ¶ĂŸe der resultierenden Pack-Datei nicht, was eine effizientere ZusammenfĂŒhrung von Pack-Dateien in Repositories mit einer großen Anzahl unerreichbarer Objekte, die ĂŒber mehrere Pack-Dateien verteilt sind, ermöglicht.

  • Experimentelle UnterstĂŒtzung fĂŒr inkrementelle Updates von Multi-Pack-Indizes (MIDX) wurde hinzugefĂŒgt, wobei jede Schicht des MIDX-Indexes mit Informationen zur VerfĂŒgbarkeit von Objekten in einer separaten Bitmap-Datei gespeichert wird. In sehr großen Repositories ermöglicht die umgesetzte Form von Indizes eine schnelle und effiziente HinzufĂŒgung neuer Bitmap-Daten zur ObjektverfĂŒgbarkeit, wenn Commits eingehen.
  • Aus dem Code-Gestell wurde die alte Engine zur AusfĂŒhrung von Merge-Operationen "recursive" entfernt, die durch die vollstĂ€ndig ĂŒberarbeitete Engine "ORT" (Ostensibly Recursive's Twin") ersetzt wurde, die produktiver, funktionaler und wartungsfreundlicher ist. ORT ermöglicht es, die Möglichkeit zur ZusammenfĂŒhrung zweier Objekte zu bestimmen, ohne neue Objekte im Repository zu erstellen (bei der alten Engine war der Befehl "git merge-tree —write-tree" erforderlich, der neue Objekte im Repository schrieb). In Git 2.50 wurde in dem Befehl merge-tree die Option "—quiet" implementiert, mit der die Möglichkeit zur ZusammenfĂŒhrung anhand des RĂŒckgabecodes ĂŒberprĂŒft werden kann, ohne Daten ins Repository zu schreiben.
  • In "git cat-file —batch" und Ă€hnlichen Befehlen wurde die Option "—filter" hinzugefĂŒgt, die es ermöglicht, bestimmte Objekte wĂ€hrend 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 zum Entfernen veralteter oder beschĂ€digter ArbeitsbĂ€ume (worktrees) im Repository. Die Aktion rerere-gc entfernt alte EintrĂ€ge, die nach der Behebung von Merge-Konflikten verbleiben. Die Aktion reflog-expire entfernt veraltete, nicht mehr verfĂŒgbare Objekte aus dem reflog.
  • Der Befehl "git reflog drop" wurde hinzugefĂŒgt, um alle reflog-Daten fĂŒr den angegebenen Branch zu löschen.
  • Die Verarbeitung und Nutzung von Links wurde optimiert, zum Beispiel wurde die Zwischenspeicherung von Link-PrĂ€fixen implementiert, unnötige ÜberprĂŒfungen beim AusfĂŒhren des Befehls "git update-ref" wurden entfernt, und die Effizienz bei der Suche nach bestehenden Link-Iteratoren wurde erhöht.
  • FĂŒr die cURL-Bibliothek wurden die KeepAlive-Einstellungen http.keepAliveIdle, http.keepAliveInterval und http.keepAliveCount hinzugefĂŒgt.
  • Im Befehl "git rev-list" wurde die Möglichkeit implementiert, im fĂŒr maschinelles Parsing passenden Format auszugeben, bei dem jedes Feld durch das NUL-Zeichen getrennt ist.
  • Die Perl-Sprache wurde aus den AbhĂ€ngigkeiten entfernt, die fĂŒr die Dokumentationswerkzeuge und die DurchfĂŒhrung des Testsets ("make test") erforderlich sind. Viele Perl-Einzeiler in den Tests wurden durch Shell-Funktionen ersetzt oder in C umgeschrieben.
  • Ein userdiff-Handler fĂŒr das Konfigurationsdateiformat ".ini" wurde hinzugefĂŒgt.
  • Im Befehl send-email wurde die UnterstĂŒtzung fĂŒr den SMTP-Server von Outlook verbessert.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster