+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

O novo padrão de hash do Git – O que isso significa

O padrão SHA-256 proposto pelo Git cria uma barreira de compatibilidade para novos repositórios.

O padrão SHA-256 proposto pelo Git cria uma barreira de compatibilidade para novos repositórios. Verificamos o plano oficial, a objeção de Scott Chacon e uma exceção de pré-visualização funcional do GitHub, depois cobrimos Pi 1.0 e SvelteKit 3. Veredito: NEEDS REVIEW.

Leia a edição escrita (Inglês) ↗

O que este vídeo aborda

  • Por que dois repositórios Git podem se recusar a 'conversar'?
  • O que o Git 3 realmente muda?
  • Por que substituir o SHA-1 se o Git detecta colisões?
  • O que nossa verificação de compatibilidade local mostrou?
  • O que sobrevive a uma falha no Pi Durable?

Transcrição traduzida

Traduzido da narração original em inglês. Áudio e legendas disponíveis são controlados pelo YouTube.

Por que dois repositórios Git podem se recusar a 'conversar'?

0:00 Você pensaria que atualizar o Git mantém suas ferramentas se comunicando. O novo padrão de hash planejado do Git cria repositórios que o formato antigo de hoje não consegue se comunicar. Neste vídeo, por que mudar? O que quebra? Quem está pronto? Já existe uma exceção em funcionamento no GitHub. Mostrarei o que ela prova no final. É sexta-feira, dois de outubro, e este é o The Daily Diff.

0:18 Na quinta-feira, um cofundador do GitHub chamou a mudança planejada do Git de um erro custoso. Pi lançou um novo agente de arnes, e SvelteKit lançou outra migração. Scott Chacon ajudou a construir o GitHub e escreveu Pro Git, então esta reclamação vem de dentro de casa. A casa também vende ferramentas Git. Primeiro, o plano real.

O que o Git 3 realmente muda?

0:35 Git três padronizaria novos repositórios para SHA duzentos e cinquenta e seis, assim que bibliotecas e serviços de hospedagem estivessem prontos para suportá-lo. O documento oficial não dá data de lançamento e mantém o SHA um suportado. Seu repositório existente não muda magicamente de formato quando você atualiza o executável. Isso vale a pena lembrar antes que seu grupo de chat agende uma migração de emergência. O drama é um padrão proposto, e o prazo é atualmente um calendário em branco.

Por que substituir o SHA-1 se o Git detecta colisões?

0:58 Por que mudar? Git nomeia objetos ao fazer o hash de seus conteúdos. Arquivos alimentam árvores, e commits referem-se a árvores e commits anteriores. Isso lhe dá integridade através do histórico. Mude o esquema de hashing e os nomes dos objetos também mudam, incluindo as referências armazenadas dentro de outros objetos. Chacon remonta a Linus Torvalds, o criador do Git, argumentando que a distribuição

1:17 confiável importa. Essa é uma posição histórica, e Linus escolheu SHA um em dois mil e cinco. O caso de segurança mudou desde então. Pesquisadores demonstraram colisões SHA um em dois mil e dezessete, e mais tarde demonstraram um ataque de prefixo escolhido contra certificados de identidade PGP. O Git moderno detecta ataques de colisão conhecidos com SHA um endurecido. Seus mantenedores querem proteção contra futuros ataques também, o que é razoável querer de assinaturas.

1:41 Chacon pensa que o custo do ecossistema compra pouca segurança. Ele propõe assinar um checksum forte separado do conteúdo da árvore, enquanto mantém o endereçamento de objetos de hoje por baixo. O que quebra? Criei ambos os formatos localmente e fiz o hash do mesmo pequeno arquivo.

O que nossa verificação de compatibilidade local mostrou?

1:54 Um nome de objeto tem quarenta caracteres hexadecimais, o outro tem sessenta e quatro. Então tentei fazer um 'fetch' entre eles. Meu Git instalado rejeitou-o com algoritmos incompatíveis, exatamente a lacuna de compatibilidade descrita no manual oficial atual. Isso usou meu Git antigo instalado, então nos fala sobre o limite de hoje. Chamá-lo de teste do Git três não lançado seria uma contabilidade criativa. O trabalho de migração atinge scripts que assumem o comprimento de um hash, e sistemas que se ligam a nomes de objetos.

2:19 Refazer o hash de um histórico precisa de um mapeamento entre essas identidades. O design de transição do Git inclui esse mapeamento e o tratamento de assinaturas. A prontidão da implementação importa, porque um documento de design não atualiza a biblioteca escondida dentro de sua ferramenta de desenvolvedor favorita. Esse é o custo humano no argumento de Chacon. Cada mantenedor de ferramenta recebe outro trabalho de compatibilidade, enquanto os usuários descobrem que seu controle de versão agora precisa de controle de versão. Por enquanto, teste seu host e suas ferramentas antes de escolher o novo formato para um

2:44 projeto. Equipes existentes podem manter seu formato atual enquanto esse ecossistema se atualiza. Enquanto isso, Pi atingiu um ponto zero.

O que sobrevive a uma falha no Pi Durable?

2:51 É um arnes de agente de codificação da Earendil, com suporte nativo MCP através de Codemode e ferramentas carregadas quando são necessárias. A equipe chama o minimalismo de objetivo. Se a sua configuração de agente já se assemelha a um pequeno governo, manter as ferramentas fora do 'prompt' até que sejam necessárias soa como reforma administrativa. Ele também lançou o Pi Durable, um framework experimental separado. As tarefas salvam checkpoints para que um processo reiniciado possa retomar o trabalho inacabado de armazenamento persistente. O detalhe crucial é a repetição da ferramenta.

3:16 Uma ferramenta interrompida por uma falha só é executada novamente quando declara isso seguro. Caso contrário, o modelo é informado de que foi interrompido. Essa é uma fronteira útil quando uma ferramenta pode gastar dinheiro. Eu quero que o assistente se lembre da minha lista de compras sem celebrar uma falha comprando-a duas vezes.

O que o SvelteKit 3 migra para você?

3:30 SvelteKit três também chegou na quinta-feira, movendo a configuração para o Vite e substituindo 'dollar lib' por 'hash lib', usando importações de subcaminho de pacote padrão. O comando de migração reescreve o que pode e deixa uma lista de tarefas para o resto. Seu robô pode ajudar, e seu 'diff' ainda merece ser lido. O anúncio até recruta seus amigos robôs para as sobras. Estamos chegando ao ponto em que uma atualização de framework envia a lição de casa e um professor substituto sugerido. E as funções remotas ainda precisam do Async Svelte experimental.

3:56 Um número de versão principal parece reconfortante, mas as funcionalidades individuais carregam seus próprios rótulos de maturidade. Verifique as que você realmente está usando.

O que a exceção de funcionamento do GitHub prova?

4:03 Então, quem está pronto para o novo formato do Git? Aqui está essa exceção. Um repositório público do GitHub contendo a palestra de Brian Carlson já retorna um nome de objeto SHA duzentos e cinquenta e seis completo. Verifiquei o remoto público diretamente. Os slides da palestra chamam o suporte de 'pré-visualização privada' e dizem que a criação de repositórios ainda está chegando. Há progresso real por trás da sala de espera. Isso prova que o GitHub pode servir a este repositório de pré-visualização.

4:24 Isso nos dá zero garantia de que a criação de projetos comuns ou todas as suas integrações estejam prontas. A exceção tem um limite de permissão. Se você preferir ler isso a me ouvir dizer, o 'diff' chega à sua caixa de entrada todas as manhãs, gratuitamente em the daily diff dot dev, link abaixo. Então o veredito de hoje é 'needs review'.

Por que meu veredito depende de toda a cadeia de ferramentas?

4:40 Eu manteria a opção de hash mais forte e testaria toda a cadeia de ferramentas antes de mudar os padrões. A compatibilidade faz parte da entrega da melhoria de segurança. E esse é o 'diff' de hoje. Eu sou Niko da Axrisi. Faça o merge com responsabilidade.

Fontes

  1. Chaconblog.gitbutler.com
  2. Git's official plangit-scm.com
  3. Current interoperabilitygit-scm.com
  4. Transition designgit-scm.com
  5. Independent collision researchsha-mbles.github.io
  6. GitHub preview repositorygithub.com
  7. Pi 1.0earendil.com
  8. Pi Durableearendil.com
  9. SvelteKit 3svelte.dev
  10. HN discussionnews.ycombinator.com

Vídeos relacionados