Git, el sistema de control de versiones más usado del mundo, sigue acumulando fricciones cuando se trabaja con muchos cambios en paralelo: gestión de ramas, commits intercalados y reorganizaciones interactivas que pueden dejar el árbol en estado inconsistente. Ante este problema han proliferado las discusiones sobre jj (Jujutsu), una alternativa a git que aborda estos puntos débiles. Sin embargo, según una experiencia recogida por un usuario que lo ha probado cada tres meses durante año y medio sin incorporarlo a su flujo de trabajo, jj implica un cambio de mentalidad que no siempre se consolida.
Mientras tanto, git ha incorporado de forma experimental el comando git history, distribuido en dos entregas: la 2.54 de abril introdujo los subcomandos reword y split, y la 2.55 de junio añadió fixup. El artículo explica en detalle cada uno de los tres subcomandos: fixup corrige un commit antiguo y reorganiza automáticamente todas las ramas descendientes; reword modifica el mensaje de un commit previo sin tocar el árbol de trabajo; y split divide un commit en dos seleccionando interactivamente los hunks deseados. Su propiedad más relevante es que operan de forma atómica, rehúsan generar conflictos y nunca dejan el repositorio en un estado roto, a diferencia de un rebase -i interrumpido a mitad.
El comando, incluido en el núcleo de git sin instalación adicional, ofrece varias de las ventajas que se atribuyen a jj sin exigir un cambio completo de herramienta. jj mantiene todavía diferencias notables, como el registro de operaciones con deshacer sencillo, el modelo de copia de trabajo como commit y la gestión de conflictos como ciudadanos de primera clase, funciones que git history no replica todavía. La documentación deja abierta la posibilidad de levantar esta última limitación en versiones futuras.
