
Git 2.52 Já está disponível como uma atualização estável para este popular sistema de controle de versão distribuído. A versão vem com Novos recursos, ajustes de manutenção e melhorias de desempenho. Resultado do trabalho de mais de 94 colaboradores, 33 dos quais participaram do projeto pela primeira vez.
Entre as mudanças mais notáveis estão novos subcomandos para explorar repositórios, um fluxo de trabalho de manutenção mais inteligente e o progresso na transição para o SHA-256. Tudo isso é entregue com uma abordagem consistente e discreta. abordagem prática que gerenciam repositórios de tamanhos variados.
Novos comandos do Git 2.52 para explorar repositórios.
A novidade mais marcante é git last-modifiedProjetado para obter de forma eficiente o commit mais recente que modificou cada caminho. Em repositórios com muitas entradas, essa abordagem evita travessias repetidas do histórico e pode ser várias vezes mais rápido do que encadear ls-tree + logDe acordo com testes internos, a redução do tempo de resposta de segundos para milissegundos em cenários reais é possível.
Motor last-modified Foi desenvolvido ao longo de anos no GitHub sob o nome árvore-da-culpaalimentando sua "culpa" em nível de árvore desde 2012. Posteriormente, Engenheiros do GitLab Eles aprimoraram o conjunto de patches para integrá-lo ao Git 2.52, embora ainda haja recursos a serem adicionados, como um formatação de disco para armazenar resultados em cache de execuções anteriores.
A versão experimental também chega. git repoUm guarda-chuva para recursos de repositório de consulta. Com git repo info Você consegue dizer se é? nu o raso, o formato de objetos e referências, e com git repo structure são impressos estatística estrutural (contagem de commits, árvores, blobs, branches, tags, etc.). Além disso, info incorpora a opção abreviada -z e é capaz de relate o formato do objeto usava.
Para aqueles que trabalham em um nível básico e possuem referências, git refs suma git refs list (pseudônimo de git for-each-ref) E git refs exists (semelhante a git show-ref --existsEles não oferecem capacidades sem precedentes, mas eles concentram operações frequentes de referências sob um único comando.
Pequeno, mas útil: agora git cmd --help-all Também funciona fora de um repositórioIsso facilita o acesso à ajuda global sem a necessidade de inicializar nada.
Manutenção e desempenho
O Git 2.52 introduz uma tarefa geometric Dentro de git maintenance Evita reempacotamentos completos sempre que possível e remove objetos inacessíveis com menos frequência. A tarefa inspeciona os pacotes para formar um progressão geométrica pelo número de objetos e compactar sem podar quando apropriado; se a operação terminar em um único pacote, execute um git gc completo para consolidação e poda.
Em termos de velocidade, existem avanços mensuráveis: git describe Agora utiliza uma fila de prioridade e ganha cerca de um 30% de desempenho; git remote rename Otimiza a renomeação de referências; git ls-files Isso mantém o índice disperso em mais casos; git log -L Evita certas diferenças em nível de árvore em mesclagens, acelerando a análise; e a biblioteca xdiff Incorpora diversas otimizações que As funções de comparação e mesclagem foram aprimoradas. no nível do arquivo.
Segurança e roteiro para o Git 3.0
A transição do SHA-1 para o SHA-256 continua. Os primeiros elementos do SHA-256 aparecem na versão 2.52. interoperabilidade entre algoritmosO objetivo é permitir que repositórios com hashes diferentes troquem alterações sem problemas. Ainda é um trabalho inicial, mas prepara o terreno para a próxima versão principal.
Outra mudança planejada para o Git 3.0 é que o branch padrão passará a se chamar "main". Isso já está presente desde a versão 2.52. pistas e mensagens de ajuda Para facilitar essa mudança, e qualquer pessoa que queira progredir pode aderir à bandeira. WITH_BREAKING_CHANGES para testar comportamentos planejados.
Inclui também, opcionalmente, código Rust protegido por WITH_RUSTque implementa a codificação/decodificação de inteiros de largura variável. Nesta versão, não é obrigatório e o Git 2.52 funciona sem o compilador Rust, mas Espera-se que o Git 3.0 o exija. e expandir os trechos reescritos.
Melhorias nos fluxos de trabalho e na usabilidade.
O uso de Filtros de Bloom de caminho alteradoUm filtro probabilístico que acelera as viagens quando estas são reduzidas por rotas. Agora, eles são usados mesmo quando... especificação de caminho contém curingas parciais (por exemplo, foo/bar/*/baz) e em cenários com múltiplas rotas de interesse, beneficiando consultas como as de last-modified e vários comandos de histórico.
git sparse-checkout adicionar a ação clean Para resolver casos em que, ao alterar a definição das áreas de interesse, arquivos são excluídos da seleção. Com uma única etapa, você pode limpar a árvore de trabalho de elementos indesejados.
Outras adições úteis: nova variável commitGraph.changedPaths ativar por padrão --changed-paths en git commit-graph; opção stash.index para git stash pop/apply comporta-se como se tivesse sido invocado com --index; git diff-tree recebe --max-depth; git fast-import agora gerencia etiquetas assinadasE git repo info Aprenda a relatar o formato do objeto, além do suporte para -z.
Disponibilidade do Git 2.52
O código-fonte do Git 2.52 pode ser baixado do site oficial para compilá-lo localmente. Deve chegar nos próximos dias e semanas. repositórios das principais distribuições Na Europa, o GNU/Linux (Debian, Ubuntu, Fedora, openSUSE, Arch, etc.) já possui gerenciadores como Homebrew, MacPorts ou Chocolatey, com os tempos de empacotamento usuais.
Com esta versão, o Git fortalece suas operações diárias com comandos mais rápidos e úteisUma rotina de manutenção mais simplificada e os primeiros componentes da transição para o SHA-256 já estão disponíveis na branch "main" como padrão. Quem atualizar já pode testá-la. git last-modifiedO novo git repoa tarefa geométrica de git maintenance e os demais ajustes que, sem fazer barulho, suavizam a experiência tanto em repositórios pequenos quanto gigantescos.