Foi anunciado lançamento da nova versão do Git 2.48 que inclui várias otimizações e melhorias. Esta versão se destaca pela inclusão do Meson como novo sistema de compilação, melhorias de desempenho e suporte, além de correções e solução para o problema de vazamentos de memória.
No Git 2.48 o Sistema de construção Meson que é adicionado ao GNU Make e CMake. Meson oferece um processo de construção mais limpo e acessível, especialmente para quem não está familiarizado com a complexidade do Make, ao mesmo tempo que mantém a compatibilidade entre plataformas. Porém, a eliminação das ferramentas tradicionais de compilação não está contemplada, garantindo continuidade aos usuários atuais.
Outra novidade que se destaca é o adicionando suporte para implementações alternativas do algoritmo SHA-1 no cálculo de somas de verificação. Por padrão, as novas implementações protegem contra ataques como SHAttered e Shambles, embora ao custo de menor desempenho. Para tarefas onde a segurança criptográfica não é uma prioridade, foram introduzidas opções que aceleram o cálculo e sacrificam a referida proteção. Essa flexibilidade permite que os usuários adaptem o desempenho às suas necessidades específicas, conforme evidenciado pelos aumentos registrados no GitHub durante as operações de clonagem.
Além disso, é mencionado que nova funcionalidade foi adicionada ao comando range-diff que permite analisar diferenças entre o estado final de uma fusão e os dados refletidos após a resolução de conflitos. Isso facilita a compreensão das alterações feitas em processos de integração complexos, tornando a ferramenta ainda mais útil para desenvolvedores que trabalham em grandes projetos colaborativos.
Também no Git 2.48 O problema de vazamentos de memória foi resolvido, algo que embora historicamente não tenha sido uma preocupação significativa para o Git, torna-se importante dados os processos de longo prazo onde funcionalidades internas são transformadas em bibliotecas reutilizáveis. A possibilidade de realizar testes com detecção de perdas garante maior estabilidade e confiança neste tipo de cenários.
Por outro lado, o comando "git for-each-ref" incorpora uma otimização para o gerenciamento de referências no repositório. Essa melhoria combina manipuladores de filtragem e formatação de saída não apenas para listas não classificadas, mas também ao usar a opção –sort, melhorando a eficiência em cenários onde a ordem é importante.
Em relação a "reftable", trabalhamos em um armazenamento mais eficiente para referências de filiais e tags, utilizando blocos que agilizam a busca e reduzem o consumo de memória. Este sistema agora é menos dependente de bibliotecas externas como libgit, simplificando as dependências na construção do Git. Além disso, foram introduzidos mecanismos para lidar de forma adaptativa com erros de falta de memória, evitando falhas críticas nessas situações.
La A funcionalidade de clonagem parcial também recebeu melhorias, resolver problemas relacionados a loops e corrupção no repositório após executar o comando “git gc”. Esse avanço é especialmente importante para quem trabalha com repositórios fragmentados ou grandes, pois garante a integridade dos dados.
O comando "git fetch" também foi melhorado, desde agora, se a referência "refs/remotes/origin/HEAD" não existir no sistema local, mas estiver presente no remoto, ela será automaticamente sincronizada. Para maior controle, foi introduzida a configuração “remote.origin.followRemoteHead”, que regula essa sincronização.
Outra mudança significativa é encontrada no comando "git rebase –rebase-merges", que agora prioriza o uso de nomes de ramificações como rótulos, melhorando a clareza durante a reorganização do commit. Por outro lado, os comandos "git notas add" e "git notas anexar" incorporaram o sinalizador "-e", que permite que as notas sejam editadas diretamente em um editor externo definido pela variável de ambiente GIT_EDITOR.
Por último mas não menos importante, em termos de compatibilidade e padrões, O Git 2.48 expande seu suporte ao GCC 15 e ao padrão C23, garantindo que você se mantenha atualizado com ferramentas de desenvolvimento modernas. No entanto, o suporte para versões mais antigas de libcURL e Perl foi descontinuado.
Por fim, se estiver interessado em saber mais sobre o assunto, pode consultar os detalhes no link a seguir