Los compañeros que nunca tocan jj no necesitan saber que existe

Parte 9 de 9.

Esta era la pregunta que más importaba antes de adoptar nada de esto para trabajo de verdad: qué pasa cuando un comentario de revisión de un PR viene de alguien que usa git a secas, o cuando yo mismo recurro por costumbre a un comando git a secas. La respuesta resultó ser la parte menos dramática de toda la serie: no pasa nada especial, porque el modo colocado significa que jj está leyendo y escribiendo la misma base de datos de objetos de Git que todos los demás. Un commit empujado con git push y un commit empujado con jj git push son el mismo tipo de objeto al otro lado.

La parte que sí quería verificar en lugar de aceptar por fe: qué pasa si alguien ejecuta git fetch o git pull directamente dentro de mi directorio de trabajo colocado; el panel de Git integrado de un IDE haciéndolo en silencio es la versión realista de esto. jj importa automáticamente las referencias del lado de Git al inicio del siguiente comando de jj, y exporta automáticamente su propio estado de vuelta a .git justo después, así que las dos vistas nunca llegan a desincronizarse de verdad. Lo probé haciendo fetch con git fetch a secas y luego simplemente ejecutando jj log: los nuevos commits remotos estaban ahí, sin necesidad de un jj git fetch primero.

Hacer rebase sobre el git push ordinario de un compañero es idéntico a la rutina del artículo anterior: jj git fetch, jj rebase -d main. Si hay conflicto, jj registra el conflicto en el commit y me deja seguir trabajando en lugar de congelar el repo entero en un estado de rebase a medias; los marcadores de conflicto en el archivo se ven exactamente como los de Git, así que resolver a mano en lugar de vía jj resolve también funciona bien.

Nueve artículos después, el resumen que le daría a otra persona que se lo esté planteando: jj colocado es una mejora personal con esencialmente cero coste de coordinación. Nadie más en el equipo tiene que adoptar nada, cambiar ningún flujo de trabajo, ni siquiera enterarse, salvo que pregunten por qué la salida de tu jj log se ve mejor que su git log --graph.