Git 2.49 include fast packing e l’integrazione di Rust
Tra le altre novità, lo strumento di controllo delle revisioni distribuite Git 2.49 introduce la clonazione più intelligente altro ancora.
/https://www.ilsoftware.it/app/uploads/2025/03/Git.jpg)
Gli sviluppatori di Git hanno appena rilasciato la nuova versione di questo sistema di controllo della versione distribuita, ovvero Git 2.49. Una delle novità più significative è la funzione name-hash rinnovata, che influenza il modo in cui il sistema raggruppa oggetti simili per la compressione delta. Ad esempio, quando un file di grandi dimensioni si evolve attraverso modifiche minori, Git può archiviare le nuove versioni in modo più efficiente facendo riferimento a quelle più vecchie.
Inoltre, Git 2.49 introduce git backfill, che consolida le richieste storiche di blob. Invece di innescare un flusso di download uno alla volta, il nuovo strumento invia un piccolo numero di richieste in batch, raggruppando gli oggetti in base al percorso del file. Il risultato è un overhead inferiore, meno round trip e una compressione delta migliorata dal lato server. Quando eseguito con l’opzione –sparse (abilitata automaticamente se il repository ha configurato il checkout sparse), git backfill cattura solo i blob mancanti rilevanti per lo sparse tree. Un altro miglioramento orientato alle prestazioni è il supporto aggiunto per zlib-ng, un fork moderno della libreria zlib ampiamente utilizzata. Zlib-ng ottimizza vari set di istruzioni SIMD (ad esempio, SSE2 e AVX2) e semplifica il codice legacy. In questo modo offre notevoli guadagni di velocità durante la compressione e la decompressione di oggetti Git.
Git 2.49 accoglie i suoi primi crate Rust: libgit-sys e libgit. Questi crate racchiudono parte del codice della libreria interna di Git in API Rust di basso e alto livello. L’implementazione attuale è una piccola proof-of-concept, incentrata principalmente sulle interfacce config.h di Git. Ciò apre le porte a futuri miglioramenti basati su Rust.
Git 2.49: migliorata l’autocorrezione dei comandi
La nuova versione introduce anche un’altra novità interessante. Se un comando è scritto male (ad esempio, digitando git psuh invece di git push), a volte Git tenta di correggerlo automaticamente. In precedenza, impostare help.autocorrect su “1” causava l’esecuzione quasi immediata del comando suggerito, il che poteva risultare stridente, soprattutto quando veniva scambiato per un semplice valore booleano “true“. Con Git 2.49, la funzionalità di correzione automatica è stata ottimizzata con le altre impostazioni booleane del progetto. “1” ora significa semplicemente “on“, mentre i valori numerici superiori a uno specificano ancora il ritardo in decisecondi. Il vecchio comportamento viene quindi sostituito, contribuendo a garantire che non si verifichino più race condition involontarie tra l’utente e la tastiera.
Infine, attualmente, il parametro –branch in git clone era limitato a branch o tag, rendendo complicato clonare un commit specifico senza etichetta di riferimento. Git 2.49 introduce –revision, che risolve qualsiasi commit arbitrario (anche se privo di branch o tag) e recupera solo la cronologia pertinente. In questo modo, le pipeline CI o i flussi di lavoro specializzati possono recuperare il commit esatto necessario senza configurazioni remote manuali. Per informazioni più dettagliate sulle modifiche e le novità in Git 2.49, è possibile consultare l’annuncio di rilascio pubblicato sul GitHub.