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

Após três meses de desenvolvimento a nova versão do sistema foi lançada de controle de código fonte distribuído «Git 2.36» um dos sistemas de controle de versão mais populares, confiáveis ​​e de alto desempenho, fornecendo ferramentas de desenvolvimento não lineares flexíveis baseadas em forks e merges of forks.

Para garantir a integridade do histórico e a resistência a mudanças "para trás", o hash implícito de todo o histórico anterior é usado em cada confirmação. Também é possível verificar as assinaturas digitais dos desenvolvedores de etiquetas e confirmações individuais.

Novos recursos principais do Git 2.36

Em relação à versão anterior, foram aceitas 717 alterações na nova versão, elaborada com a participação de 96 desenvolvedores, dos quais 26 participaram do desenvolvimento pela primeira vez. Principais inovações:

a opção “–remerge-diff” adicionado aos comandos “git log” e “git show” para mostrar as diferenças entre o resultado geral da mesclagem e os dados reais refletidos no commit após o processamento do comando "merge", que permite avaliar visualmente as alterações feitas como resultado da resolução de conflitos de mesclagem. O comando usual “git show” separa as diferentes resoluções de conflito com recuo, dificultando a compreensão das alterações.

Ao usar a opção “–remerge-diff”, as diferenças entre as resoluções de conflito não são separadas para cada ramificação pai, mas as diferenças gerais entre um arquivo que tem conflitos de mesclagem e um arquivo que resolveu conflitos são mostradas.

Outra mudança notável é a maior flexibilidade na personalização do comportamento de liberar caches de disco por meio da chamada de função fsync(). Parâmetro core.fsyncObjectFiles disponível anteriormente foi dividido em duas variáveis ​​de configuração core.fsync e core.fsyncMethod, que fornece a capacidade de aplicar fsync não apenas a arquivos de objeto (.git/objects), mas também a outras estruturas git, como refs ( .git /refs), reflog e arquivos de pacote.

via variável core.fsync, você pode especificar uma lista de estruturas internas do Git, após a operação de gravação, para a qual o fsync será chamado adicionalmente. A variável core.fsyncMethod permite que você selecione um método para liberar o cache, por exemplo, você pode selecionar fsync para usar a chamada do sistema com o mesmo nome ou especificar somente gravação para usar escrita lenta pendente (escrita lenta do cache de página).

Para se proteger contra vulnerabilidades que lidam com a substituição de diretórios .git por outros usuários em partições compartilhadas, a verificação do proprietário do repositório foi reforçada. Agora só é permitido executar qualquer comando git em seus próprios diretórios ".git". Se o diretório do repositório pertencer a outro usuário, um erro será gerado por padrão. Esse comportamento pode ser desabilitado usando a configuração de diretório seguro.

Destaca-se também que adicionada a opção “–batch-command” ao comando “git cat-file”, que se destina a gerar o conteúdo original dos objetos Git, complementando os comandos “–batch” e “–batch-check” anteriormente disponível com a capacidade de selecionar o tipo de saída de forma adaptativa via “content » para exibir conteúdo ou «info » para exibir informações sobre o objeto. Além disso, há suporte para um comando "flush" para liberar o buffer de saída.

Por outro lado, destaca-se que adicionada opção “–oid-only” (“–object-only”) ao comando "git ls-tree", que é projetado para listar o conteúdo de uma árvore de objetos que, por analogia com "–name -only", exibe apenas identificadores de objeto para simplificar chamadas de scripts. A opção “–format” também é implementada, o que permite definir seu próprio formato de saída combinando informações de modo, tipo, nome e tamanho.

Das outras mudanças que se destacam nesta nova versão:

  • No comando "git bisect run" é implementada a definição de não definir o sinal de um arquivo executável para o script e gerar erros com os códigos 126 ou 127 neste caso (anteriormente, se o script não pudesse ser executado, todas as revisões eram marcado como tendo problemas).
  • Adicionada opção “–refetch” ao comando “git fetch” para buscar todos os objetos sem informar o outro lado do conteúdo que já está no sistema local. Esse comportamento pode ser útil para restaurar o estado após falhas quando houver incerteza sobre a integridade dos dados locais.
  • Os comandos "git update-index", "git checkout-index", "git read-tree" e "git clean" agora suportam indexação parcial (índice esparso) para melhorar o desempenho e economizar espaço em repositórios que realizam operações parciais. (pagamento ruim).
  • Alterado o comportamento do comando "git clone --filter=... --recurse-submodules", que agora leva à clonagem parcial dos submódulos (anteriormente, ao executar tais comandos, o filtro era aplicado apenas ao conteúdo principal e os submódulos eram completamente clonado sem levar em conta o filtro).
  • Adicionado suporte para especificar filtros para posicionamento seletivo de conteúdo no comando "git bundle", semelhante às operações de clone parcial.
  • Adicionada a opção “–recurse-submodules” ao comando “git branch” para percorrer os submódulos recursivamente.
    O Userdiff propôs um novo driver para a linguagem Kotlin.

Finalmente se você estiver interessado em saber mais sobre isso sobre esta nova versão do Git 2.36 você pode consultar os detalhes em o seguinte link.


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.