Git 2.38 versão de controle de origem

O lançamento do sistema de controle de origem distribuído Git 2.38 foi anunciado. Git é um dos sistemas de controle de versão mais populares, confiáveis ​​e de alto desempenho, fornecendo ferramentas flexíveis de desenvolvimento não linear baseadas em ramificação e fusão. Para garantir a integridade do histórico e a resistência a mudanças retroativas, é utilizado hash implícito de todo o histórico anterior em cada commit; também é possível certificar tags individuais e commits com assinaturas digitais dos desenvolvedores.

Em comparação com a versão anterior, a nova versão incluiu 699 alterações, preparadas com a participação de 92 desenvolvedores, dos quais 24 participaram do desenvolvimento pela primeira vez. Principais inovações:

  • A estrutura principal inclui o utilitário “escalar”, desenvolvido pela Microsoft para gerenciar grandes repositórios. O utilitário foi originalmente escrito em C#, mas o git inclui uma versão modificada em C. O novo utilitário difere do comando git por habilitar por padrão recursos e configurações adicionais que afetam o desempenho ao trabalhar com repositórios muito grandes. Por exemplo, ao usar escalar aplica-se:
    • Clonagem parcial para trabalhar com uma cópia incompleta do repositório.
    • Mecanismo integrado para rastrear alterações no sistema de arquivos (FSMonitor), que permite fazer isso sem pesquisar em todo o diretório de trabalho.
    • Índices que cobrem objetos em diferentes arquivos de pacotes (multi-pack).
    • arquivos commit-graph com um índice de gráfico de commit usado para otimizar o acesso às informações de commit.
    • Trabalho periódico em segundo plano para manter a estrutura ideal do repositório em segundo plano, sem bloquear a sessão interativa (o trabalho é feito uma vez por hora para baixar proativamente novos objetos do repositório remoto e atualizar o arquivo com o gráfico de commit e o processo de empacotamento o repositório é iniciado todas as noites).
    • Modo "sparseCheckoutCone", que limita os padrões permitidos durante a clonagem parcial.
  • Adicionada uma opção --update-refs ao comando "git rebase" para atualizar ramificações dependentes que se sobrepõem às ramificações que estão sendo movidas, em vez de ter que verificar manualmente cada ramificação dependente para mudar para o commit necessário.
  • Tornou o comando "git rm" compatível com índices parciais.
  • Melhorado o comportamento do comando "git mv AB" ao mover um arquivo de um workspace com índices parciais em modo "cone" para um escopo externo que não possui este modo.
  • O formato de arquivo bitmap foi otimizado para trabalhar com repositórios grandes - uma tabela de índice opcional foi adicionada com uma lista de commits selecionados e seus deslocamentos.
  • O comando “git merge-tree” implementa um novo modo no qual, a partir de dois commits especificados, é calculada uma árvore com o resultado da mesclagem, como se os históricos desses commits fossem mesclados.
  • Adicionada configuração "safe.barerepository" para controlar a capacidade de hospedar repositórios vazios (repositórios que não contêm uma árvore de trabalho) dentro de outros repositórios git. Quando definido como “explícito”, será possível trabalhar com repositórios vazios localizados apenas no diretório superior. Para poder colocar repositórios vazios em subdiretórios, use o valor “all”.
  • O comando “git grep” adicionou a opção “-m” (“—max-count”), que é semelhante à opção de mesmo nome no GNU grep e permite limitar o número de correspondências exibidas.
  • O comando “ls-files” implementa a opção “--format” para configurar os campos de saída (por exemplo, você pode habilitar a saída do nome do objeto, modos, etc.).
  • No “git cat-file”, ao exibir o conteúdo dos objetos, é possível levar em consideração as ligações autor-e-mail especificadas no arquivo mailmap.

Fonte: opennet.ru

Adicionar um comentário