A liberazione di u sistema di cuntrollu di fonte distribuitu Git 2.38 hè stata annunziata. Git hè unu di i sistemi di cuntrollu di versione più populari, affidabili è d'altu rendiment, chì furnisce strumenti di sviluppu flexible non lineari basati in ramificazione è fusione. Per assicurà l'integrità di a storia è a resistenza à i cambiamenti retroattivi, l'hashing implicitu di tutta a storia precedente hè aduprata in ogni impegnu; hè ancu pussibule di certificà e tag individuali è impegni cù signature digitale di i sviluppatori.
Comparatu à a versione precedente, a nova versione include 699 cambiamenti, preparati cù a participazione di sviluppatori 92, di i quali 24 hà participatu à u sviluppu per a prima volta. Innuvazioni principali:
- A struttura principale include l'utilità "scalar", sviluppata da Microsoft per a gestione di grandi repositori. L'utilità hè stata scritta in origine in C#, ma git include una versione mudificata in C. A nova utilità difiere da u cumandamentu git per attivendu per predeterminate funzioni supplementari è paràmetri chì affettanu u rendiment quandu travagliate cù repositori assai grandi. Per esempiu, quandu si usa scalare, s'applica:
- Clonazione parziale per travaglià cù una copia incompleta di u repository.
- Meccanisimu integratu per seguità i cambiamenti in u sistema di fugliale (FSMonitor), chì vi permette di fà senza cercà in tuttu u cartulare di travagliu.
- Indici chì coprenu l'uggetti in diversi schedarii di pacchetti (multi-pack).
- commit-graph files cun un indice di commit graph utilizatu per ottimisà l'accessu à l'infurmazioni cummit.
- U travagliu periodicu di fondo per mantene a struttura ottimale di u repository in u sfondate, senza bluccà a sessione interattiva (u travagliu hè fattu una volta à l'ora per scaricà in modu proattivu l'uggetti freschi da u repository remota è aghjurnà u schedariu cù u graficu di commit, è u prucessu di imballaggio). u repository hè cuminciatu ogni notte).
- Modu "sparseCheckoutCone", chì limita i mudelli permessi durante a clonazione parziale.
- Aggiunta una opzione --update-refs à u cumandamentu "git rebase" per aghjurnà e rami dipendenti chì si sovrapponenu cù e rami chì sò spustati, invece di avè da verificà manualmente ogni ramu dipendente per cambià à l'impegnu necessariu.
- Fate u cumandamentu "git rm" cumpatibile cù indici parziali.
- Migliuratu u cumpurtamentu di u cumandamentu "git mv A B" quandu si move un schedariu da un spaziu di travagliu cù indici parziali in modu "cone" à una regione esterna chì ùn hà micca stu modu.
- U furmatu di u schedariu bitmap hè stata ottimizzata per travaglià cù grandi repositori - una tabella d'indici opzionale hè stata aghjunta cù una lista di commits selezziunati è i so offsets.
- U cumandamentu "git merge-tree" implementa un novu modu in u quale, basatu annantu à dui cumposti specificati, un arbulu cù u risultatu di a fusione hè calculatu, cum'è s'è i stori di sti cummissioni sò stati uniti.
- Aggiuntu "safe.barerepository" paràmetru per cuntrullà a capacità d'ospitu repositori nudi (repositori chì ùn cuntenenu micca un arbre di travagliu) in altri repositori git. Quandu si mette à "esplicito", serà pussibule di travaglià cù repositori nudi situati solu in u top directory. Per pudè mette i repositori nudi in subdirectorii, utilizate u valore "tuttu".
- U cumandamentu "git grep" hà aghjustatu l'opzione "-m" ("-max-count"), chì hè simile à l'opzione di u stessu nome in GNU grep è permette di limità u numeru di partite affissate.
- U cumandamentu "ls-files" implementa l'opzione "--format" per cunfigurà i campi di output (per esempiu, pudete attivà l'output di u nome di l'ughjettu, modi, etc.).
- In "git cat-file", quandu mostra u cuntenutu di l'uggetti, hè pussibule di piglià in contu l'autori-e-mail bindings specificati in u schedariu mailmap.
Source: opennet.ru