D'Verëffentlechung vum verdeelt Quellkontrollsystem Git 2.37 gouf ugekënnegt. Git ass ee vun de populäersten, zouverlässegsten an héich performante Versiounskontrollsystemer, déi flexibel net-linear Entwécklungsinstrumenter baséieren op Verzweigung a Fusioun. Fir d'Integritéit vun der Geschicht an d'Resistenz géint retroaktiv Ännerungen ze garantéieren, gëtt implizit Hashing vun der ganzer viregter Geschicht an all Engagement benotzt; et ass och méiglech individuell Tags ze zertifiéieren an engagéiert mat digitalen Ënnerschrëften vun den Entwéckler.
Am Verglach zu der viregter Verëffentlechung goufen 395 Ännerungen an déi nei Versioun ugeholl, virbereet mat der Participatioun vun 75 Entwéckler, vun deenen 20 fir d'éischt Kéier un der Entwécklung deelgeholl hunn. Haaptinnovatiounen:
- De Mechanismus vu partiellen Indexen (sparen Index), deen nëmmen en Deel vum Repository deckt, gouf prett fir verbreet Benotzung bruecht. Deelweis Indexe kënnen d'Performance verbesseren an Plaz spueren an Repositories déi deelweis Klonen (sparse-checkout) Operatiounen ausféieren oder mat enger onkomplett Kopie vum Repository schaffen. Déi nei Verëffentlechung fäerdeg d'Integratioun vu partiellen Indexen an der Git Show, Git Sparse-Checkout, a Git Stash Kommandoen. De bemierkenswäertste Leeschtungsvirdeel vum Gebrauch vu partiellen Indexen gëtt mam git Stash Kommando gesi, deen eng 80% Erhéijung vun der Ausféierungsgeschwindegkeet an e puer Situatiounen gesinn huet.
- En neien "Cruft Packs" Mechanismus gouf implementéiert fir onerreechbar Objeten ze packen déi net am Repository referenzéiert sinn (net vu Filialen oder Tags referenzéiert). Onerreechbar Objete ginn vum Gerempels geläscht, awer bleiwen am Repository fir eng gewëssen Zäit ier se geläscht ginn, fir Rennbedéngungen ze vermeiden. Fir d'Period vun der Optriede vun onerreechbaren Objeten ze verfolgen, ass et néideg Tags un hinnen mat der Zäit vun der Ännerung vun ähnlechen Objeten ze befestigen, wat et net erlaabt se an enger Packdatei ze späicheren an där all Objeten eng gemeinsam Ännerungszäit hunn. Virdrun huet d'Späichere vun all Objet an enger separater Datei zu Probleemer gefouert wann et eng grouss Zuel vu frëschen, onerreechbaren Objeten waren, déi nach net berechtegt waren fir ze läschen. De proposéierte Mechanismus vun "Cruft Packs" erlaabt Iech all onerreechbar Objeten an engem Packdatei ze späicheren, a reflektéiert Daten iwwer d'Ännerungszäit vun all Objet an enger separater Tabell, déi an engem Fichier mat der Extensioun ".mtimes" gespäichert ass.
- Fir Windows a MacOS gëtt et en agebaute Mechanismus fir Ännerungen am Dateiesystem ze verfolgen, wat Iech erlaabt Iech iwwer de ganzen Aarbechtsverzeichnis ze widderhuelen wann Dir Operatiounen ausféiert wéi "git Status". Virdrun, fir Ännerungen ze verfolgen, kënnen extern Utilitys fir Ännerungen am FS ze verfolgen, wéi Watchman, iwwer Haken verbonne sinn, awer dëst erfuerdert d'Installatioun vun zousätzleche Programmer a Konfiguratioun. Elo ass déi spezifizéiert Funktionalitéit agebaut a ka mat dem Kommando "git config core.fsmonitor true" aktivéiert ginn.
- Am Kommando "git sparse-checkout" ass d'Ënnerstëtzung fir eng Alternativ zum "-cone" Modus, d'Method fir Templates fir deelweis Klonen ze definéieren, als obsolet deklaréiert, wat et erlaabt, wann Dir den Deel vum Repository bestëmmen, deen ënnerleien ass d'Klonungsoperatioun, fir eenzel Dateie mat der ".gitignore" Syntax ze lëschten, déi d'Benotzung fir Optimiséierung deelweis Indexen net erlaabt.
- Méi Flexibilitéit bei der Konfiguratioun vum fsync () Uruff fir Ännerungen op Disk ze spülen. Ënnerstëtzung fir d'"Batch" Synchroniséierungsstrategie gouf zum Parameter "core.fsyncMethod" bäigefüügt, wat d'Aarbecht beschleunegt beim Schreiwen vun enger grousser Unzuel vun eenzelne Dateien andeems d'Ännerungen am Writeback Cache accumuléiert ginn, dee vun engem eenzegen fsync () zréckgesat gëtt. ruffen. Den Test, deen dozou gefouert huet datt 500 Dateien derbäigesat goufen mam Kommando "git add", gouf an 0.15 Sekonnen ofgeschloss wann den neie Modus ageschalt war, wärend fsync () ruffen 1.88 Sekonnen fir all Datei, an ouni fsync ze benotzen - 0.06 Sekonnen.
- Branch Traversal Kommandoen wéi "git log" an "git rev-list" hunn elo eng Optioun "-since-as-filter=X" déi Iech erlaabt Informatioun iwwer Verpflichtungen ze filteren déi méi al sinn wéi "X". Am Géigesaz zu der "—zënter" Optioun gëtt den neie Kommando als Filter ëmgesat, deen d'Sich no der éischter Verpflichtung net méi al wéi déi spezifizéiert Zäit stoppt.
- Am Kommando "git Remote", wann Dir de "-v" Fändel spezifizéiert, gëtt Informatioun iwwer deelweis Klonen vum Repository ugewisen.
- Zousätzlech "transfer.credentialsInUrl" Astellung, déi d'Wäerter "warnen", "stierwen" an "allow" huelen. Wann am Parameter "Remote. .url" Kloertext Umeldungsinformatiounen, probéiert eng "fetch" oder "push" Operatioun auszeféieren, wäert mat engem Feeler falen, wann d'"transfer.credentialsInUrl" Astellung op "stierwen" gesat ass, oder eng Warnung wann se op "warn" gesat gëtt.
- Par défaut ass déi nei Implementatioun vum interaktiven Modus vum Kommando "git add -i", vun Perl op C nei geschriwwen, aktivéiert.
Source: opennet.ru
