Lançamento do sistema de controle de origem distribuído Git 2.24

Disponível lançamento de um sistema de controle de origem distribuído Git 2.24.0. 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 544 alterações, preparadas com a participação de 78 desenvolvedores, dos quais 21 participaram do desenvolvimento pela primeira vez. O principal inovações:

  • O suporte a macros de configuração foi adicionado, permitindo que você alterne rapidamente entre diferentes conjuntos de configurações sem precisar se aprofundar nos detalhes de opções específicas. O uso de macros elimina a necessidade de lembrar quais configurações precisam ser alteradas para ativar um recurso específico. Por exemplo, se um repositório grande estiver apresentando lentidão, você pode precisar mudar para um novo mecanismo de indexação, habilitar a compressão de prefixo de caminho e habilitar o cache de arquivos não rastreados definindo `index.version` como 4 e habilitando `core.untrackedCache`. As macros eliminam a necessidade de procurar a solução na documentação e permitem que você ative imediatamente configurações com otimizações para repositórios com um grande número de arquivos.

    git config feature.manyFiles true

  • Включено по умолчанию хранение объектов в форме графа коммитов (commit-graph), при котором для индексации используется не линейный список хэшей объектов со ссылками на другие объекты, а структура в виде графа. Если раньше для определения релизов в которых содержится определённое исправление требовалась загрузка каждого объекта с диска для поиска ссылок, то при хранении в виде графа можно сразу определить все необходимые связи. Перевод на хранения в виде графа коммитов в репозиториях ядра Linux и Git позволил добиться почти двухкратного увеличения производительности операций с ветками. Для активации нового метода хранения после обновления до Git 2.24 следует выполнить команду «git gc».

    Entre as mudanças relacionadas ao commit-graph, a implementação do indicador de progresso em comandos relacionados ao commit-graph ("git commit-graph write", "git commit-graph verify", etc.) foi alinhada com os demais comandos. O indicador de progresso agora é exibido por padrão apenas no terminal (para alterar esse comportamento, use a opção "-[no-]progress"). Além disso, um novo parâmetro de configuração, fetch.writeCommitGraph, foi adicionado, permitindo a atualização automática do arquivo de commit-graph durante operações de "git fetch" (todos os commits recuperados de repositórios externos serão adicionados imediatamente ao commit-graph, sem a necessidade de executar o auto-gc separadamente).

  • Adicionado um comando para sobrescrever o histórico de alterações - "repositório de filtro git", que é uma alternativa mais simples ao comando "git filter-branch"para realizar operações no histórico de alterações do repositório (por exemplo, excluir um arquivo do repositório ou recuperar o histórico de alterações de um diretório específico). Para maior eficiência, em vez de uma análise ordenada, commit por commit, o "git filter-repo" realiza operações em uma representação de fluxo contínuo do histórico."

    A filtragem do histórico é realizada usando a opção "-path-{glob,regex}", que permite o uso de máscaras simples e expressões regulares. Também estão disponíveis opções para realizar uma operação de busca e substituição ou para limpar objetos binários que excedam um tamanho especificado. A cada commit reescrito é atribuído um novo identificador hash SHA-1, e todas as referências ao commit substituído são atualizadas de acordo.

    A opção "-analyze" está disponível para exibir um resumo das estatísticas do repositório (número de objetos por tipo, maiores arquivos e diretórios, quais extensões requerem mais espaço em disco, etc.). Para funcionalidades expandidas, podem ser incluídos manipuladores de retorno de chamada Python personalizados, permitindo a criação de novos subcomandos e o tratamento de diversos eventos (por exemplo, novos tipos de arquivo).

  • Adicionada a opção "--end-of-options" para separar opções de nomes de referência que podem começar com um caractere "-" e serem tratados como opções ("git log --end-of-options --super-dangerous-option"). Embora tais nomes possam ser escapados no uso cotidiano, como "git log 'refs/heads/--super-dangerous-option'", isso poderia causar problemas de resolução de namespace em scripts. O separador padrão "-" não é aplicável neste caso, pois já é usado para separar nomes de referência de arquivos (por exemplo, "git log --end-of-options --super-dangerous-option ^master --path/to/file");
  • Adicionadas as opções "--strategy" e "--strategy-option" ao comando "git rebase --rebase-merges" para seleção. estratégias de fusão;
  • Adicionado um novo manipulador ".git/hooks/pre-merge-commit" que é chamado após a mesclagem ser realizada, mas antes que o commit resultante seja gravado;
  • O mecanismo de autocompletar comandos agora suporta o preenchimento de variáveis ​​de configuração relacionadas a configurações de comando específicas.
    Por exemplo, se você precisar digitar "git -c core.autocrlf=false add path/to/my/file", mas não se lembrar do nome exato da variável "core.autocrlf", você pode pressionar Tab para obter uma dica.

Além disso, os desenvolvedores do Git adicionado Um código de conduta para participantes do projeto que define os princípios básicos para a resolução de situações de conflito. O documento baseia-se nas recomendações deConvênio do Colaborador«, применяемых во многих открытых проектах, включая ядро Linux, Eclipse, Freedesktop, GitLab, Ruby и Kubernetes. Документ определяет равные возможности для всех участников, независимо от их мировоззрения, возраста, пола, религиозных предпочтений, уровня образования, социального статуса и национальности. В сообществе приветствуется дружелюбная форма общения, понимание, сопереживание проблемам других участников, восприятие конструктивной критики, принятие наилучших для всего сообщества решений. Не допускаются троллинг, оскорбительная манера общения, попытки унижения, домогательства, нарушения неприкосновенности частной жизни, разглашение персональных сведений, а также другие действия, которые могут считаться неуместными при профессиональном общении.

Fonte: opennet.ru

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