Git 2.37 já foi lançado e essas são as novidades

O lançamento de a nova versão de Git 2.37, que é um dos sistemas de controle de versão mais populares, software confiável e de alto desempenho que fornece ferramentas de desenvolvimento não lineares flexíveis baseadas em bifurcações e fusões de bifurcações.

Para garantir a integridade do histórico e a resistência a mudanças, o hash implícito "retrocesso" de todo o histórico anterior é usado em cada commit, também é possível verificar as assinaturas digitais de tag individual e desenvolvedores de commit.

Novos recursos principais do Git 2.37

Comparado com a versão anterior, 395 alterações foram aceitas na nova versão, elaborado com a participação de 75 desenvolvedores, dos quais 20 participaram do desenvolvimento pela primeira vez.

Nesta nova versão destaca-se que o mecanismo de índices parciais (índice esparso), que cobre apenas parte do repositório, se foi preparado para uso generalizado. Índices parciais podem melhorar o desempenho e economizar espaço em repositórios que realizam operações de clone parcial (checkout esparso) ou operam em uma cópia incompleta do repositório.

A nova versão completa o trabalho de integração de índices parciais em comandos "git show", "git sparse-checkout" e "git stash". O ganho de desempenho mais notável com o uso de índices parciais está no comando "git stash", que é até 80% mais rápido em algumas situações.

Outra mudança que se destaca é que um novo mecanismo de “cruft packs” foi implementado para empacotar objetos inacessíveis que não são referenciados no repositório (não referenciados por branches ou tags). O coletor de lixo exclui objetos inacessíveis, mas eles permanecem no repositório por um certo tempo antes de excluí-los para evitar condições de corrida. Para rastrear o período de objetos inacessíveis, é necessário vincular, eles são marcados com o tempo de alteração de objetos semelhantes, o que não permite que sejam armazenados em um arquivo bundle, no qual todos os objetos possuem um tempo de modificação comum.

Salvando cada objeto usado anteriormente em um arquivo separado, o arquivo causou problemas na presença de um grande número de novos objetos inacessíveis, ainda não. O mecanismo proposto de "cruft packs" permite que todos os objetos inacessíveis sejam armazenados em um arquivo de pacote, e os dados sobre o tempo de modificação de cada objeto são refletidos em uma tabela separada armazenada em um arquivo com a extensão ".mtimes".

Para Windows e macOS, há um mecanismo integrado para acompanhar as alterações no sistema de arquivos, que elimina a necessidade de listar todo o diretório de trabalho ao realizar operações como "git status". Anteriormente, para rastrear alterações por meio de ganchos, você podia conectar utilitários de controle de alterações de sistema de arquivos externos, como Watchman, mas isso exigia a instalação de programas e configurações adicionais. Essa funcionalidade agora está incorporada e pode ser habilitada com "git config core.fsmonitor true".

Comando "git sparse-checkout" abandonou o suporte para uma alternativa ao modo "--cone" definição de template para clonagem parcial, que permite, ao definir a parte do repositório sujeita à operação de clonagem, listar arquivos individuais utilizando a sintaxe ".gitignore", que não permite o uso para otimizar índices parciais.

Das outras mudanças que se destacam:

  • Flexibilidade aprimorada na configuração da chamada fsync() para liberar as alterações no disco.
  • Adicionado suporte para a estratégia de sincronização "lote" para o parâmetro "core.fsyncMethod", que acelera o trabalho ao gravar um grande número de arquivos separados acumulando alterações no cache de reescrita liberado por uma única chamada fsync().
  • Comandos de travessia como “git log” e “git rev-list” agora têm a opção “–since-as-filter=X” para filtrar informações sobre commits anteriores a “X”.
  • No comando "git remote", especificar o sinalizador "-v" fornece informações sobre clones parciais do repositório.
  • Adicionada a configuração "transfer.credentialsInUrl", que pode assumir os valores "warn", "die" e "allow". Se o parâmetro “remoto. .url" especifica credenciais em texto simples, uma tentativa de executar operações "get" ou "push" falhará se a configuração "transfer.credentialsInUrl" estiver definida como "die" ou um aviso se estiver definido como "warn" .
  • Por padrão, é usada a nova implementação do modo interativo do comando "git add -i", reescrito de Perl para C.

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.