DiffsHub
(diffshub.com)- Quando é preciso revisar rapidamente um diff grande do GitHub no navegador, o DiffsHub é uma ferramenta que mostra diffs públicos em uma interface virtualizada
- Basta trocar
github.compordiffshub.comna URL do GitHub para ver imediatamente alterações de PR, comparação, commit, diff e patch - Sem exigir nenhum processo extra de conversão, ele mantém a estrutura original da URL, permitindo acessar
github.com/org/repo/pull/numbercomodiffshub.com/org/repo/pull/number - Ele consegue lidar até com comparações de milhões de linhas, como no Linux
v6.0...v7.0, embora navegadores mobile possam ocasionalmente travar - O GitHub pode atrasar a resposta do primeiro byte e não entregar diffs com mais de 100k linhas de forma estável, então pode ser uma alternativa para revisar mudanças grandes
Visualizador de diff que usa a URL do GitHub diretamente
- DiffsHub é uma ferramenta para ver diffs públicos do GitHub de forma rápida em uma interface virtualizada e agradável de navegar
- Suporta PR, comparação, commit, diff e patch
- O usuário acessa apenas trocando o domínio na URL do GitHub
github.com/org/repo/pull/numberdiffshub.com/org/repo/pull/number
Diffs com milhões de linhas e limitações
- O DiffsHub consegue lidar com comparações na escala de milhões de linhas
- Como exemplo, é possível ver a comparação Linux v6.0...v7.0
- Comparações grandes assim podem ocasionalmente travar em navegadores mobile
- O GitHub pode fornecer de forma instável diffs com mais de 100k linhas, com atraso na resposta do primeiro byte
1 comentários
Opiniões no Lobste.rs
Tentei entender o que visualizar diffs tem a ver com a tag vibecoding
Depois peguei o contexto e o drama, e entendi por que isso aconteceu. Desculpas ao @quad por ter gerado ruído, e agora vi que a tag já foi removida
Por exemplo, colocam a tag vibecoding por motivos como baixa qualidade de código, poucos commits, ou até só porque existe um CLAUDE.md no repositório, o que parece não significar muita coisa
Como contexto adicional, este texto parece relevante: On Rendering Diffs
Até ao navegar pelo diff do Linux linkado na página inicial, a experiência foi bem fluida e impressionante. Dá para perceber isso arrastando a barra de rolagem manualmente. Seria ótimo se o GitHub, outros editores de diff no navegador, e até o Graphite que uso no trabalho fossem tão fluidos assim
Por outro lado, é estranho até ficar impressionado com isso. Dá a sensação de que esse deveria ser o padrão
Literalmente foram meses de trabalho em tempo integral para fazer a renderização de diffs ficar rápida
A propósito, embora tenha recebido a tag “vibecoding”, eu ainda não entendo isso, porque esse trabalho não teve nada desse tipo. A maior parte foi pesquisa difícil, leitura de código de implementação de navegador, tentativa e erro, e investigação séria dos problemas
Loops com agentes foram usados em tarefas exploratórias muito específicas e com retorno claro, mas pelo que sei nada entrou sem insight e revisão humana. O texto do blog também parece abordar isso, e essa parte foi realmente pequena no trabalho como um todo. Desmerecer esse esforço de engenharia por causa disso não faz sentido
Recomendo fortemente ler o texto do blog ou olhar o código. É um trabalho impressionante e há muito a aprender
Fiz um bookmarklet para testar diretamente: Infelizmente, muitos PRs, especialmente os grandes, precisam de recurso de comentários. Vai ser interessante ver quando o Pierre vai avançar até essa área e talvez criar algo como https://www.reviewable.io/
O npmjs diz que é Apache 2, mas não há licença no repositório e no package.json ainda consta
"private":true, então foi difícil entender o motivoA resposta parece ser que cada diretório é licenciado separadamente: https://github.com/pierrecomputer/pierre/…
E o próprio diffshub aparentemente não está incluído na parte open source: https://github.com/pierrecomputer/pierre/…
Esse modelo de licenciamento cirúrgico deixa diretórios como https://github.com/pierrecomputer/pierre/… numa situação ambígua. Isso porque esse diretório não tem um LICENCE.md Apache 2, embora a história possa ser diferente se considerarmos o campo package.json como autoridade
A UI parece melhor que a do GitHub, exceto pelo contraste. Não sei dizer quanto à acessibilidade
Só para constar, em qualquer pull request do GitHub dá para obter o diff adicionando
.diffno finalExemplo: https://github.com/oven-sh/bun/pull/30412.diff
Se adicionar
.patch, também dá para obter um formato que pode ser enviado aogit am: https://github.com/oven-sh/bun/pull/30412.patcherror: too big or took too long to generateEscolheram esse PR de propósito por causa disso? :D
Talvez eu tenha expectativas mais baixas do que outras pessoas em relação a ferramentas, mas ao comparar isso com a funcionalidade nativa do GitHub, não consigo ver bem uma diferença prática
Todo mundo fica lamentando como o GitHub é ruim, mas eu nunca tive essa mesma experiência. Não entendo por que eu deveria usar isso em vez do GitHub
Historicamente, essa tem sido minha experiência comum, e também explico por que velocidade importa. Quando alguma tarefa fica lenta por tempo suficiente, meus pensamentos começam a vagar, e isso prejudica bastante meu estado de fluxo
O vídeo compara lado a lado o tempo para abrir um PR e navegar até um arquivo específico. Para mim, isso é uma tarefa cotidiana bem comum
https://x.com/mitchellh/status/2057229385963618787
Parece bem parecido com pulldash(feito pela coder.com) ou difit(uma CLI que sobe uma página em localhost)
Não gosto muito de nenhum dos dois. O pulldash era meio travado e o difit exigia esforço extra. Para self-review, hoje uso a extensão do VSCode git tree compare
Ela é rápida e eu também gosto do visual geral. Testei com um dos meus PRs e pareceu suficientemente boa; talvez eu até deixe isso salvo nos favoritos no PC