2 febbraio presentato rilascio del sistema di controllo distribuito delle versioni Git 2.53.
Git offre elevate prestazioni e strumenti per lo sviluppo non lineare, basati su ramificazione e fusione dei branch. Per garantire l'integrità della cronologia e la resilienza ai cambiamenti 'retroattivi', utilizza l'hashing implicito dell'intera cronologia precedente in ogni commit, insieme all'autenticazione tramite firme digitali degli sviluppatori per singoli tag e commit. Codice Git distribuito sotto licenza GPLv2+.
Rispetto alla versione precedente, la nuova versione include 466 modifiche, realizzate con la partecipazione di 70 sviluppatori (21 hanno partecipato allo sviluppo di Git per la prima volta). Principali novità:
- Aggiunto la possibilità di applicare la strategia di impacchettamento dei repository geometric (git repack —geometric) a repository esterni parzialmente clonati, funzionanti in modalità promisor (gli oggetti mancanti vengono recuperati all'occorrenza). Durante la riunione con l'opzione —geometric, i file pack con estensione .promisor vengono elaborati e impacchettati separatamente. La strategia geometric consente di ridurre i tempi di manutenzione di grandi monorepository, grazie all'impacchettamento selettivo degli oggetti e all'esclusione di operazioni eccessivamente dispendiose in termini di risorse, come la fusione di tutti i file pack (si mantiene una progressione geometrica delle dimensioni dei file pack, in cui ogni file pack successivo deve essere almeno il doppio rispetto al precedente).
- Nel team git fast-import è stata aggiunta l'opzione —signed-commits=strip-if-invalid per rimuovere le firme digitali dagli oggetti importati che sono diventati non validi dopo la riscrittura di parte della cronologia del repository. In precedenza, era possibile importare o rimuovere tutte le firme, senza distinzione tra quelle valide e quelle prive di significato. L'opzione strip-if-invalid consente di implementare strumenti per mantenere le firme valide e ri-firmare gli oggetti con firme ormai non più attuali.
- Nell'output del comando git repo structure è stata aggiunta l'informazione delle dimensioni di tutti gli oggetti raggiungibili (reachable) nel repository, suddivisa per tipo. Le informazioni vengono ora visualizzate in modo leggibile con le unità di misura e mostrate separatamente per le dimensioni effettive e quelle occupate su disco, consentendo di valutare la dimensione complessiva del repository su disco:
$ git repo structure | Struttura del repository | Valore | | ——————— | ———- | | * Riferimenti | | | * Conteggio | 1.78 k | | * Rami | 5 | | * Tag | 1.03 k | | * Remoti | 749 | | * Altri | 0 | | | | | * Oggetti raggiungibili | | | * Conteggio | 421.37 k | | * Commit | 88.03 k | | * Alberi | 169.95 k | | * Blobs | 162.40 k | | * Tag | 994 | | * Dimensione gonfiata | 7.61 GiB | | * Commit | 60.95 MiB | | * Alberi | 2.44 GiB | | * Blobs | 5.11 GiB | | * Tag | 731.73 KiB | | * Dimensione disco | 301.50 MiB | | * Commit | 33.57 MiB | | * Alberi | 77.92 MiB | | * Blobs | 189.44 MiB | | * Tag | 578.13 KiB |
- Nel comando git maintenance è stata aggiunta la sottocomando is-needed per eseguire operazioni di manutenzione del repository solo se necessario.
- Nel comando sperimentale git replay, l'aggiornamento dei riferimenti è attivato per impostazione predefinita durante la transazione, invece di mostrare dove dovrebbero puntare i riferimenti senza aggiornarli.
- Nel comando git blame è stata aggiunta la possibilità di scegliere l'algoritmo di valutazione delle differenze tramite l'opzione —diff-algorithm=.
- Nel comando git repo info è stata aggiunta l'opzione —all.
- Supporto per i collegamenti simbolici è stato trasferito da Git-for-Windows per la piattaforma Windows.
Nella versione precedente è stata aggiunta un avviso l'inclusione predefinita del supporto per il linguaggio Rust in Git 2.53. Tuttavia, nella versione Git 2.53 sono presenti solo sono stati aggiunti alcuni miglioramenti nel supporto per Rust (la possibilità di compilare senza GNU sed), ma la compilazione con Rust utilizzando Makefile rimane disabilitata per impostazione predefinita (richiede l'attivazione del flag WITH_RUST), mentre con Meson si attiva automaticamente con un compilatore rustc. Nella versione Git 3.0, gli strumenti Rust con un compilatore rustc. Nella versione Git 3.0, il toolkit Rust intendono dovranno essere inclusi tra le dipendenze di compilazione obbligatorie.
Fonte: linux.org.ru
