È stato annunciato rilascio della nuova versione di Git 2.48 che include molteplici ottimizzazioni e miglioramenti. Questa versione si distingue per l'inclusione di Meson come nuovo sistema di build, miglioramenti delle prestazioni e del supporto, nonché correzioni e la soluzione al problema delle perdite di memoria.
In Git 2.48 il Sistema di costruzione dei mesoni che viene aggiunto a GNU Make e CMake. Meson offre un processo di creazione più pulito e accessibile, soprattutto per coloro che non hanno familiarità con la complessità di Make, pur mantenendo la compatibilità multipiattaforma. Non è tuttavia prevista l'eliminazione degli strumenti di compilazione tradizionali, garantendo la continuità agli attuali utilizzatori.
Un'altra novità che spicca è il aggiunta del supporto per implementazioni alternative dell'algoritmo SHA-1 nel calcolo dei checksum. Per impostazione predefinita, le nuove implementazioni proteggono da attacchi come SHAttered e Shambles, anche se a scapito di prestazioni inferiori. Per le attività in cui la sicurezza crittografica non è una priorità, sono state introdotte opzioni che accelerano il calcolo sacrificando tale protezione. Questa flessibilità consente agli utenti di adattare le prestazioni alle proprie esigenze specifiche, come evidenziato dagli incrementi registrati su GitHub durante le operazioni di clonazione.
Oltre a questo, si menziona quello è stata aggiunta una nuova funzionalità al comando range-diff che consente di analizzare le differenze tra lo stato finale di una fusione e i dati riflessi dopo la risoluzione dei conflitti. Ciò semplifica la comprensione delle modifiche apportate a processi di integrazione complessi, rendendo lo strumento ancora più utile per gli sviluppatori che lavorano su grandi progetti collaborativi.
Anche in Git 2.48 Il problema delle perdite di memoria è stato risolto, qualcosa che, sebbene storicamente non sia stata una preoccupazione significativa per Git, diventa importante considerati i processi a lungo termine dove le funzionalità interne vengono trasformate in librerie riutilizzabili. La possibilità di eseguire test con rilevamento delle perdite garantisce maggiore stabilità e confidenza in questo tipo di scenari.
D'altra parte, il comando "git for-each-ref" incorpora un'ottimizzazione per la gestione dei riferimenti nel repository. Questo miglioramento combina i gestori di filtraggio e formattazione dell'output non solo per gli elenchi non ordinati, ma anche quando si utilizza l'opzione –sort, migliorando l'efficienza negli scenari in cui l'ordine è importante.
Per quanto riguarda "reftable", abbiamo lavorato su un'archiviazione più efficiente per i riferimenti a rami e tag, utilizzando blocchi che velocizzano la ricerca e riducono il consumo di memoria. Questo sistema ora dipende meno da librerie esterne come libgit, semplificando le dipendenze durante la creazione di Git. Inoltre, sono stati introdotti meccanismi per gestire in modo adattivo gli errori di memoria insufficiente, evitando guasti critici in queste situazioni.
La Anche la funzionalità di clonazione parziale ha ricevuto miglioramenti, risoluzione dei problemi relativi ai loop e alla corruzione nel repository dopo aver eseguito il comando "git gc". Questo progresso è particolarmente importante per coloro che lavorano con repository frammentati o di grandi dimensioni, poiché garantisce l'integrità dei dati.
Il comando "anche git fetch" è stato migliorato, da adesso, se il riferimento "refs/remotes/origin/HEAD" non esiste sul sistema locale ma è presente su quello remoto, viene automaticamente sincronizzato. Per un maggiore controllo è stata introdotta l'impostazione “remote.origin.followRemoteHead” che regola questa sincronizzazione.
Un altro cambiamento significativo si trova nel comando "git rebase –rebase-merges", che ora dà la priorità all'utilizzo dei nomi dei rami come etichette, migliorare la chiarezza durante la riorganizzazione del commit. D'altra parte, i comandi "git notes add" e "git notes append" hanno incorporato il flag "-e", che consente di modificare le note direttamente in un editor esterno definito dalla variabile d'ambiente GIT_EDITOR.
Ultimo ma non meno importante, in termini di compatibilità e standard, Git 2.48 espande il suo supporto per GCC 15 e lo standard C23, assicurandoti di rimanere aggiornato con i moderni strumenti di sviluppo. Tuttavia, il supporto per le versioni precedenti di libcURL e Perl è stato interrotto.
Infine, se sei interessato a saperne di più, puoi consultare i dettagli nel seguente link