Lançamento do sistema de controle de versões Git 2.45

Após dois meses de desenvolvimento, foi lançado o Git 2.45, um sistema distribuído de controle de versões. O Git é um dos sistemas de gerenciamento de versões mais populares, confiáveis e de alto desempenho, oferecendo ferramentas flexíveis para desenvolvimento não linear baseadas em ramificações e fusões. Para garantir a integridade do histórico e a resistência a alterações retroativas, o sistema utiliza uma hash implícita de todo o histórico anterior em cada commit, além da possibilidade de verificação digital através de assinaturas dos desenvolvedores em tags e commits individuais. O código do Git é distribuído sob a licença GPLv2+.

Comparado à versão anterior, a nova versão incorpora 540 alterações, realizadas por 96 desenvolvedores, dos quais 35 participaram do desenvolvimento pela primeira vez. As principais inovações são:

  • Foi adicionada a pré-suporte para o backend 'reftable' para armazenar eficientemente referências a ramificações e tags no repositório. O novo backend utiliza um armazenamento baseado em blocos, implementado pelo projeto JGit, otimizado para armazenar um grande número de referências (formatos tradicionais de armazenamento de referências resultam em sobrecarga significativa em repositórios com muitas referências devido ao grande número de arquivos em um único diretório, no caso de armazenamento de referências no diretório $GIT_DIR/refs, ou pela necessidade de reescrever um único arquivo grande a cada update, no caso de armazenamento de referências no arquivo $GIT_DIR/packed_refs). O novo backend é ativado com a opção '--ref-format=reftable' ao inicializar o repositório ('git init --ref-format=reftable /path/to/repo') e permite acelerar a busca, leitura e escrita em repositórios com muitas referências.
  • Foram disponibilizadas ferramentas para garantir a portabilidade entre identificadores de objetos baseados em hash SHA-1 e SHA-256. Para operar com hashes SHA-1 e SHA-256 em um único repositório durante a migração gradual para hashes SHA-256, foi proposto um novo formato de objeto 'compatibility', permitindo referenciar objetos não apenas pelo hash principal definido durante a inicialização do repositório, mas também por um hash de backup. Por exemplo, ao iniciar um repositório, pode-se escolher o formato SHA-256, e definir o hash SHA-1 como backup: git init --object-format=sha256 /path/to/repo cd /path/to/repo git config extensions.compatObjectFormat sha1
  • A equipe do «git rev-list» recebeu a capacidade de exibir identificadores de objetos ausentes no repositório local, mesmo que eles sejam inalcançáveis em uma branch ou tag, o que pode ser usado para diagnosticar a corrupção do repositório: git rev-list —missing=print —all | grep ‘^?’ ?70678e7afeacdcba1242793c3d3d28916a2fd152
  • Uma nova comando «git reflog list» foi adicionada para mostrar reflogs conhecidos e os links correspondentes às tags e branches.
  • Foi fornecida a capacidade de definir prefixos alternativos para a saída do «git diff», exibidos antes do caminho do arquivo e indicando o estado antes e depois de uma versão específica do arquivo (por padrão, os prefixos «a/» e «b/» são usados). Novos parâmetros diff.srcPrefix e diff.dstPrefix foram adicionados à configuração para definir seus próprios prefixos.
  • Adicionado o parâmetro core.commentString para definir a linha delimitadora que será usada em vez do caractere «#» para ignorar comentários na mensagem de commit. A configuração anteriormente disponível core.commentChar foi adaptada para suportar caracteres multibyte como delimitadores de comentário (anteriormente apenas caracteres ASCII eram suportados).
  • Adicionada uma opção «—comment» ao comando «git config», permitindo salvar comentários no arquivo .gitconfig para esclarecer o significado de várias configurações. git config —comment ‘para mostrar a base de merge’ merge.conflictStyle diff3 tail -n 2 .git/config [merge] conflictStyle = diff3 # para mostrar a base de merge
  • A opção «—empty» foi adicionada ao comando «git cherry-pick» para remover automaticamente commits redundantes, de maneira semelhante à opção «—empty» no git-rebase e git-am.
  • No comando «git checkout -p», é permitido usar o caractere «@» como um sinônimo para o nome «HEAD».

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