Merge de texto

Un merge de texto combina los cambios de dos versiones de un archivo en un unico resultado editable. Un conflicto aparece cuando dos cambios son incompatibles y hace falta tomar una decision.

Diseno

Esta pantalla muestra tres versiones del mismo archivo.

Merge de texto con huecos de insercion

Hay dos disenos de merge:

Para cambiar entre ellos usa el menu Ver o el control segmentado de la parte superior derecha.

Base

Tambien existe una cuarta version: la base. Es la version original de la que partieron ambos lados. Coincide con el modelo de merge de tres vias de Git:

Local → Base ← Remote
          ↓
        Result

En ABDiff, el panel central puede alternar entre Resultado y Base para ayudarte a entender mejor que cambio.

Que es un conflicto?

Un conflicto ocurre cuando ambos lados modifican las mismas lineas de forma distinta. Por ejemplo, el valor original era “blue”, pero ahora un lado dice “green” y el otro “red”. Git no puede determinar que cambio es correcto, asi que requiere una resolucion manual.

Cambios incompatibles

Esto ocurre cuando dos personas editan las mismas lineas al mismo tiempo. Si los cambios no se solapan, Git los combina automaticamente. Si se solapan, tienes que resolver el conflicto manualmente.

Resolver un conflicto

Si configuraste Git, ABDiff se abrira cuando Git encuentre un conflicto. El area de resultado queda sin resolver, y tu tarea es definir su contenido. Tienes tres opciones:

Haz clic derecho en cualquier fila para ver las acciones disponibles

Consejos:

Marcar como resuelto

Cuando termines, guarda el archivo (Archivo ▸ Guardar o ⌘S). Esto indica a Git que el conflicto ha quedado resuelto.

Si no quieres resolver el conflicto, cierra el archivo sin guardar.

Edicion y navegacion

Accion Atajo
Fila anterior / siguiente ↑ / ↓
Panel anterior / siguiente ← / →
Saltar a la primera / ultima fila ⌘↑ / ⌘↓
Cambio anterior / siguiente ⌥↑ / ⌥↓
Bloque anterior / siguiente ⌥↑ / ⌥↓
Cambiar a otro panel

Copiar

Accion Atajo
Copiar la seleccion al resultado ⌘← ⌘→
Ampliar seleccion ⇧↑ / ⇧↓
Resolver con nuestra version / su version ⇧⌘→ / ⇧⌘←

Una linea seleccionada se muestra con un rectangulo gris. Un bloque es un bloque continuo de conflicto o cambio. Las acciones de copia solo se activan cuando modificarian el panel Resultado y cuando la seleccion esta sobre una linea real. Un Shift-clic en una fila tambien amplia la seleccion actual dentro del mismo panel.

Para copiar cambios:

Todas las acciones de copia se pueden deshacer con ⌘Z.

Edicion

Accion Atajo
Empezar a editar la fila seleccionada de Resultado Return
Empezar a editar directamente una fila de Resultado Doble clic en la fila
Confirmar y pasar a la siguiente fila editable Return (mientras editas)
Confirmar y salir del modo de edicion Command-Return
Descartar el buffer actual de la fila y salir del modo de edicion Esc o Command-.

Tambien puedes empezar a editar haciendo doble clic con el raton sobre una fila. Todas las acciones de edicion se pueden deshacer con ⌘Z.

Opciones de vista

El merge de texto expone opciones que cambian como se calcula o se muestra la comparacion. Estas opciones estan disponibles en el menu de opciones.

Temas relacionados