DiffsHub
(diffshub.com)- Cuando necesitas revisar rápidamente un diff grande de GitHub en el navegador, DiffsHub es una herramienta que muestra diffs públicos con una interfaz virtualizada
- Si cambias
github.compordiffshub.comen una URL de GitHub, puedes ver de inmediato cambios de PR, comparación, commit, diff y patch - Mantiene la estructura de URL existente sin pasos de conversión adicionales, por lo que puedes acceder cambiando
github.com/org/repo/pull/numberpordiffshub.com/org/repo/pull/number - Puede manejar comparaciones de millones de líneas como Linux
v6.0...v7.0, aunque en navegadores móviles a veces puede fallar - GitHub puede tardar en entregar el primer byte y no ofrecer de forma estable los diffs de más de 100k líneas, así que puede servir como alternativa para revisar cambios grandes
Visor de diffs que usa la misma URL de GitHub
- DiffsHub es una herramienta para revisar diffs públicos de GitHub con una interfaz virtualizada rápida y fácil de leer
- Soporta PR, comparaciones, commits, diff y patch
- El usuario accede cambiando solo el dominio en la URL de GitHub
github.com/org/repo/pull/numberdiffshub.com/org/repo/pull/number
Diffs de millones de líneas y limitaciones
- DiffsHub puede manejar comparaciones de millones de líneas
- Como ejemplo, se puede ver la comparación de Linux v6.0...v7.0
- Estas comparaciones grandes a veces pueden hacer fallar a los navegadores móviles
- GitHub puede entregar de forma inestable los diffs de más de 100k líneas con un primer byte tardío
1 comentarios
Opiniones en Lobste.rs
Estaba tratando de entender qué tenía que ver ver diffs con la etiqueta vibecoding
Luego me puse al día con el contexto y el drama, y entendí por qué pasó esto. Perdón con @quad por haber metido ruido, y ya vi que además quitaron la etiqueta
Por ejemplo, le ponen la etiqueta vibecoding por cosas como baja calidad de código, pocos commits, o incluso solo porque el repositorio tiene un CLAUDE.md, lo cual no parece significar mucho
Como contexto adicional, esta publicación parece relevante: On Rendering Diffs
Incluso al recorrer los diffs de Linux enlazados en la página principal, la experiencia se siente bastante fluida y me impresionó. Se nota si arrastras la barra de desplazamiento tú mismo. Ojalá Github, otros editores de diff basados en navegador, y Graphite, que usamos en el trabajo, fueran así de fluidos
Por otro lado, hasta se siente raro admirar algo así. ¿No debería ser este el estándar?
Literalmente fueron meses de trabajo a tiempo completo para lograr renderizar diffs rápidamente
Por cierto, aunque le pusieron la etiqueta “vibecoding”, sigo sin entenderlo, porque este trabajo no fue para nada de ese estilo. La mayor parte consistió en investigación difícil, leer código de implementación del navegador, prueba y error, y meterse de lleno en el problema de la forma clásica
Se usaron agent loops para tareas de exploración muy acotadas y con recompensa clara, pero hasta donde sé, no hubo nada metido ahí sin la intuición y revisión de una persona. Parece que la publicación del blog también toca este punto, y fue una parte realmente mínima de todo el trabajo. Desmerecer el esfuerzo de ingeniería por eso no tiene sentido
Recomiendo muchísimo leer la publicación del blog o mirar el código. Es un trabajo sorprendente y hay mucho para aprender
Hice un bookmarklet para probarlo directamente: Lamentablemente, muchos PR, sobre todo los grandes, necesitan funciones de comentarios. Habrá que ver cuándo Pierre lleva esto también a esa área y hace algo como https://www.reviewable.io/
npmjs dice que es Apache 2, pero no hay licencia en el repositorio y en el package.json incluso aparece
"private":true, así que costaba entender por quéLa respuesta parece ser que cada directorio tiene su propia licencia: https://github.com/pierrecomputer/pierre/…
Y diffshub en sí no parece estar incluido en la parte open source: https://github.com/pierrecomputer/pierre/…
Este enfoque de licenciamiento quirúrgico deja en una zona ambigua directorios como https://github.com/pierrecomputer/pierre/…, porque ese directorio no tiene un LICENCE.md de Apache 2, aunque la historia podría cambiar si se considera autoritativo el campo de package.json
La UI se ve mejor que la de Github, salvo por el contraste. No sé qué tan bien esté en accesibilidad
Como dato, en todos los pull request de Github puedes obtener el diff agregando
.diffal finalEjemplo: https://github.com/oven-sh/bun/pull/30412.diff
Si agregas
.patch, también puedes obtener una versión que se puede pasar agit am: https://github.com/oven-sh/bun/pull/30412.patcherror: too big or took too long to generate¿Eligieron este PR a propósito por eso? :D
Tal vez mis expectativas sobre herramientas son más bajas que las de los demás, pero al comparar esto con la funcionalidad propia de Github no termino de ver una diferencia práctica
Todos se lamentan de lo malo que es Github, pero yo no he tenido esa misma experiencia. No veo por qué usar esto en lugar de Github
Históricamente, esta ha sido mi experiencia habitual, y también explica por qué importa la velocidad. Si algo va lo suficientemente lento durante bastante tiempo, mis pensamientos se van a otra parte, y eso arruina mucho el estado de concentración
El video compara lado a lado cuánto tarda abrir un PR e ir a un archivo específico. Para mí es una tarea cotidiana bastante común
https://x.com/mitchellh/status/2057229385963618787
Se parece bastante a pulldash (hecho por coder.com) o difit (un CLI que levanta una página en localhost)
Ninguno de los dos me gusta mucho. pulldash andaba medio trabado y difit requería trabajo extra. Para self-review ahora uso la extensión de VSCode git tree compare
Esa es rápida y además me gusta el diseño visual general. La probé con uno de mis PR y se veía suficientemente bien; hasta podría dejarla guardada en favoritos en la PC