Lançamento do sistema de controle de versão Git 2.50

Foi publicado o lançamento do sistema de controle de versão distribuído Git 2.50. O Git se destaca pela alta performance e fornece ferramentas para desenvolvimento não linear, baseadas em ramificação e fusão de branches. Para garantir a integridade do histórico e a resistência a alterações 'retroativas', o Git utiliza hashing implícito de todo o histórico anterior em cada commit, bem como autenticação por meio de assinaturas digitais dos desenvolvedores em tags e commits individuais. O código do Git é distribuído sob a licença GPLv2+.

Em comparação com a versão anterior, esta nova versão inclui 621 alterações, desenvolvidas com a participação de 98 desenvolvedores, dos quais 35 estão colaborando pela primeira vez. Principais novidades:

  • A capacidade de divisão em vários arquivos pack da base de objetos inatingíveis (‘cruft packs’), para os quais não há referências no repositório (nenhuma branch ou tag aponta para eles), foi ampliada. O uso de vários arquivos pack menores em vez de um único grande permite uma redução significativa nas operações de entrada/saída ao reempacotar repositórios com um grande número de objetos inatingíveis, já que não é necessário reescrever todos os dados a cada operação de reempacotamento.

    A nova versão apresenta a opção ‘—combine-cruft-below-size’, que permite organizar a fusão de arquivos pack existentes, cujo tamanho não excede um valor especificado. Diferente da opção anteriormente disponível ‘—max-cruft-size’, a nova opção ‘—combine-cruft-below-size’ não limita o tamanho máximo do arquivo pack resultante, o que possibilita uma fusão mais eficiente de arquivos pack em repositórios com um grande número de objetos inatingíveis, distribuídos em vários arquivos pack.

  • Adicionada suporte experimental para atualização incremental de índices multi-pack (MIDX), onde cada camada do índice MIDX com informações sobre a disponibilidade de objetos é armazenada em um arquivo bitmap separado. Em repositórios muito grandes, o formato de índice implementado permite adicionar rapidamente e de forma eficiente novos bitmaps de disponibilidade de objetos conforme os commits são recebidos.
  • O antigo mecanismo de execução de operações de mesclagem "recursive" foi removido da base de código, substituído por um novo mecanismo reestruturado chamado "ORT" (Ostensibly Recursive’s Twin), que é mais eficiente, funcional e fácil de manter. O ORT permite verificar a viabilidade de mesclar dois objetos sem criar novos objetos no repositório (no antigo mecanismo era necessário executar o comando "git merge-tree —write-tree", que gravava novos objetos no repositório). No Git 2.50, foi implementada a opção "—quiet" no comando merge-tree, que permite verificar a possibilidade de mesclagem com base no código de retorno, sem gravar dados no repositório.
  • No comando "git cat-file —batch" e em comandos semelhantes, foi adicionada a opção "—filter", que permite omitir alguns objetos durante a operação. git cat-file —batch-check='%(objectname)' —filter='object:type=tree'
  • O comando "git maintenance" agora possui três novas ações: worktree-prune, rerere-gc e reflog-expire. A ação worktree-prune destina-se a remover árvores de trabalho (worktrees) obsoletas ou danificadas no repositório. A ação rerere-gc exclui entradas antigas remanescentes após a resolução de conflitos de mesclagem. A ação reflog-expire remove objetos obsoletos e inacessíveis do reflog.
  • Foi adicionada a comando "git reflog drop", que remove todos os dados do reflog para o branch especificado.
  • Foi otimizada a manipulação e o uso de referências, como a implementação de cache de prefixos de referências, remoção de verificações desnecessárias durante a execução do comando "git update-ref" e aumento da eficiência na busca de iteradores de referências existentes.
  • Novas configurações KeepAlive foram adicionadas à biblioteca cURL: http.keepAliveIdle, http.keepAliveInterval e http.keepAliveCount.
  • No comando "git rev-list", foi implementada a capacidade de saída em um formato amigável para análise automática, onde cada campo é separado pelo caractere NUL.
  • A linguagem Perl foi excluída das dependências necessárias para as utilitários de documentação e execução do conjunto de testes ("make test"). Muitos scripts em Perl nos testes foram substituídos por funções shell ou reescritos na linguagem C.
  • Adicionado um manipulador userdiff para o formato de arquivos de configuração ".ini".
  • No comando send-email, a compatibilidade com servidores SMTP do Outlook foi melhorada.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster