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

Após três meses de desenvolvimento, foi lançada a versão 2.32 do sistema de controle de versão distribuído Git. O Git é um dos sistemas de controle de versão mais populares, confiáveis e de alto desempenho, oferecendo ferramentas flexíveis para desenvolvimento não linear, com base em ramificações e mesclagens. Para garantir a integridade do histórico e a resistência a alterações retroativas, o sistema utiliza a hashagem implícita de todo o histórico anterior em cada commit, sendo também possível autenticar digitalmente tags e commits individuais.

Comparado à versão anterior, a nova versão aceita 617 alterações preparadas com a participação de 100 desenvolvedores, dos quais 35 participaram do desenvolvimento pela primeira vez. As principais novidades são:

  • O comando ‘git commit’ agora inclui a opção ‘—trailer [=]’, que simplifica o anexo de informações estruturadas (trailer) no formato chave/valor ao commit, que podem ser posteriormente processadas pelo comando ‘interpret-trailers’.
  • Em vez do mecanismo GIT_CONFIG_NOSYSTEM, usado para evitar a leitura do arquivo de configuração compartilhado do sistema, foi proposto o uso do mecanismo GIT_CONFIG_SYSTEM, que permite especificar explicitamente de qual arquivo carregar as configurações do sistema, assim como o parâmetro GIT_CONFIG_GLOBAL para sobrescrever as configurações vinculadas a usuários individuais em $HOME/.gitconfig. Atribuir um valor vazio à variável GIT_CONFIG_SYSTEM muda o comportamento para o equivalente a GIT_CONFIG_NOSYSTEM.
  • Com a segunda versão do protocolo de comunicação do Git, ao executar ‘git push’, foi implementada a determinação do ancestral comum no lado receptor, o que aumentou a eficiência do ‘git push’ ao nível do ‘git fetch’ e eliminou o download de objetos desnecessários.
  • Foi adicionado uma interface IPC simples, permitindo a criação de serviços, como o fsmonitor.
  • O processamento dos arquivos ‘.gitattributes’, ‘.gitignore’ e ‘.mailmap’ foi interrompido se eles forem links simbólicos.
  • Para o transporte HTTP, foi adicionado suporte ao cache de senhas que foram usadas com sucesso para desbloquear certificados.
  • No comando ‘git stash show’, foi implementada a possibilidade de exibir a parte não rastreada do armazenamento de arquivos temporariamente removidos.
  • Foi proposta uma estratégia mais avançada para reempacotar o repositório pela equipe 'git repack', permitindo reduzir o consumo de recursos durante o reempilhamento.
  • Na equipe 'git commit', foi implementada uma versão expandida da opção '--fixup' (criação de commit para 'rebase --autosquash') — '--fixup=(reword|amend):', oferecendo a escolha de alterar apenas a mensagem de log ou alterar tanto a mensagem quanto o conteúdo.
  • Na equipe 'git send-email', foi considerada a configuração core.hooksPath.
  • Em 'git format-patch -v', é permitido o uso de contadores que não são números inteiros.
  • Na 'git clone', foi adicionada a opção '--reject-shallow', que proíbe o clone de repositórios em modo shallow (sem o histórico completo de alterações).
  • No programa 'gitweb', foi adicionado um modo de ocultar e-mails, substituindo linhas semelhantes a e-mails na saída.
  • A lógica de manipulação do comando 'git apply --3way' foi alterada; agora tenta primeiro aplicar o algoritmo de mesclagem tripla e, somente em caso de falha ou conflito, reverte para a aplicação normal do patch (antes era o contrário).
  • No comando 'git apply', é permitido especificar simultaneamente as opções '--3way' e '--cached'.
  • Nos Userdiff, foram adicionados padrões para a linguagem 'Scheme'.
  • No comando 'git log', foi adicionada a opção '--diff-merges=' e a configuração log.diffMerges para escolher o modo padrão.
  • Nos comandos 'git add' e 'git rm', foi adicionada uma proteção extra contra a alteração de dados em caminhos fora da área de operação de clonagem parcial (sparse checkout).
  • No comando 'git rev-list', foi adicionada a opção '--filter=object:type=' para excluir tipos específicos de objetos do arquivo pack gerado pelo comando pack-objects.
  • Em 'git pack-objects', é proibido indicar valores negativos em opções que aceitam valores numéricos, como '--window' e '--depth'.

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