A nova versão de Git 2.46 chega após três meses de desenvolvimento e nesta nova versão foram incorporadas diversas melhorias e novos recursos significativos como suporte experimental para um novo tipo de bitmaps, melhorias no back-end experimental “reftable”, nova interface de linha de comando para o comando “git config”, entre outras coisas.
Esta nova versão do Git 2.46 inclui correções de bugs de mais de 96 colaboradores, 31 deles novos e como tal, a nova versão contém 746 alterações.
Principais novidades do Git 2.46
O suporte experimental para “bitmap de acessibilidade de pseudofusão” é um dos novos recursos mais importantes desta versão, e este novo tipo de bitmap se diferente da estrutura tradicional "bitmap de acessibilidade" armazenando dados sobre conjuntos de objetos relacionados a commits não para cada commit individual, mas para vários commits de uma só vez.
Como tal, este bitmap de acessibilidade pseudomerge permite usar um único bitmap para definir objetos em commits de diferentes ramos, resultando em uma melhoria significativa de desempenho, especialmente em grandes repositórios. Isso acelera operações como git fetch, git rev-list e git clone, reduzindo a necessidade de gerar vários bitmaps separados.
Git 2.46 também introduz várias melhorias importantes em sua interface de linha de comando e no gerenciamento de credenciais e armazenamento de dados. A interface da linha de comando para o comando git config foi redesenhada, substituindo opções díspares como –get, –get-all, –unset e –remove-section com um conjunto de subcomandos mais intuitivos. Por exemplo, para exibir todas as configurações do repositório, agora você pode usar o comando “lista de configurações do git«, e para visualizar o conteúdo de um parâmetro específico, agora você pode usar o comando «git configuração obter ». Para filtrar ainda mais os resultados, você pode usar a opção “–regexp” para especificar um filtro baseado em uma expressão regular.
Além disso, no protocolo «credential helper" adicionou suporte para novos campos "authtype" e "credential", permitindo criar manipuladores para sistemas de autenticação HTTP que fazem mais do que apenas verificar o nome de usuário e a senha, por exemplo, ao usar o Bearer Token no OAuth 2.0. E anteriormente, Para trabalhar com tais sistemas de autenticação, foi necessário especificar os dados confidenciais em texto não criptografado no parâmetro http.extraHeader. Além do mais, protocolo adiciona a capacidade de persistir o estado de cada controlador de credenciais para suportar métodos de autenticação multifator usados em protocolos como NTLM e Kerberos.
Por outro lado, o desenvolvimento do backend experimental “reftable” foi melhorado para armazenamento eficiente de links para ramificações e tags no repositório. A nova versão adiciona o comando “git refs Migrate –ref-format=reftable” para migrar repositórios existentes para o backend “reftable” (anteriormente, o backend só era habilitado quando o repositório era inicializado).
Também, No Git 2.46 foi iniciado o processo de conversão de alguns testes do conjunto de testes, ao uso de testes unitários. O objetivo é simplificar o teste de componentes de baixo nível e aumentar a eficiência do processo de teste na plataforma Windows, o que gera grandes custos indiretos ao executar uma série de processos em uma plataforma grande durante a execução de testes implementados em um shell roteiros.
Do outras mudanças que se destacam desta nova versão:
- Adicionada a opção “–no-advice” ao comando git, que desativa todas as mensagens de conselhos e dicas, o que pode ser útil para evitar que o log fique entupido com informações desnecessárias durante uma chamada git automatizada.
- Adicionada a capacidade de usar a representação “#RGB” além da representação “#RRGGBB” no código para analisar configurações de cores.
- Quando git merge vê que o índice não pode ser atualizado (por exemplo, devido a
para outro processo que faz a mesma coisa em segundo plano) - Uma macro CPP USE_THE_REPOSITORY_VARIABLE é introduzida para ajudar a fazer a transição da base de código para ser menos dependente da disponibilidade da instância singleton the_repository.
- “git version –build-options” relata as informações da versão de
- OpenSSL e outras bibliotecas (se usadas) no build.
- Corrigidos vazamentos de memória em "git mv"
- Suporte atualizado para conclusão de linha de comando para zsh (em contrib/)
parar de expor o estado interno à interação do shell do usuário final
Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir