Git 2.37 è l'ultima versione della nota applicazione per il versioning distribuito da linea di comando creata niente meno che da Linus Torvalds, i papà del Kernel Linux, che ne rese disponibile la prima release nel corso del 2005.
Le novità di questo nuovo aggiornamento riguardano in particolare l'inclusione di un filesystem monitor integrato a livello di core, che dovrebbe rivelarsi fondamentale per il miglioramento delle prestazioni, il supporto per gli sparse clone e la nuova gestione degli oggetti rimossi tramite cruft pack.
Sparse clone e cruft pack
Gli sparse clone rispondono all'esigenza di accelerare il workflow, grazie ad essi infatti non sarà più necessario scaricare un intero repository quando si desidera accedere ad un singolo componente o ad un numero limitato di parti di un progetto.
Cruft pack si presenta invece come un'alternativa al meccanismo utilizzato tradizionalmente da Git per la rimozione degli oggetti irraggiungibili, l'istruzione:
git repack -Ad
non garantisce infatti la rimozione immediata di questo tipo di oggetti.
Filesystem monitor
Il filesystem monitor, forse la feature più interessante di questo rilascio, dovrebbe rendere più veloce l'esecuzione di alcuni comandi come per esempio git status
.
Quando invocato infatti, quest'ultimo può determinare una scansione completa di tutta la directory di lavoro determinando tempi di attesa variabili a seconda del progetto che si sta sviluppando.
L'uso del filesystem monitor presenta però alcune controindicazioni, si ricorda in primo luogo che esso è stato integrato direttamente nella codebase della piattaforma e questo potrebbe determinare delle incompatibilità con filesystem monitor di terze parti.
In secondo luogo potrebbero essere riscontrate delle problematiche quando si utilizzano contemporaneamente più versioni di Git, cosa che potrebbe accadere se sono state installati più ambienti di sviluppo nel medesimo sistema.
Da notare infine che il filesystem monitor è oggi disponibile per le versioni di Git dedicate a Windows e macOS, mentre per quanto riguarda le distribuzioni Linux non troviamo alcun riferimento nella documentazione.