1 puntos por GN⁺ 4 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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.com por diffshub.com en 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/number por diffshub.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/number
    • diffshub.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

 
GN⁺ 4 시간 전
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

    • Lobsters entró en una fase medio rara donde la gente decide por su cuenta si un proyecto “parece vibecoded”
      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
    • Había un CLAUDE.md en el repositorio. Acá lo quitaron por error, y me parece que en esta publicación sí era una etiqueta apropiada
    • Por suerte, parece que esa etiqueta ya desapareció
  • 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?

    • Conozco a la persona que hizo la mayor parte del trabajo de renderizado de diffs y al autor de ese texto. Durante el proceso me fueron llegando actualizaciones por mensaje en tiempo real, y fue increíble ver cuánta investigación y trabajo le metieron
      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
    • De verdad esto debería ser el estándar. Ojalá Gitlab y Forgejo también lo adopten
      Hice un bookmarklet para probarlo directamente:
      javascript:(function(){window.open(window.location.href.replace('github.com','diffshub.com'),'_blank');})();  
      
      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 .diff al final
    Ejemplo: https://github.com/oven-sh/bun/pull/30412.diff
    Si agregas .patch, también puedes obtener una versión que se puede pasar a git am: https://github.com/oven-sh/bun/pull/30412.patch

    • error: 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

    • Grabé un video para mostrar por qué esto es importante para mí. Perdón por que el video esté en X, pero lo subí ahí
      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