tools tool graphical extensions emacs merge diff kdiff3 emacs-ediff

emacs - tool - ¿Puede Ediff Merge mostrar simultáneamente el antepasado, A, B y los buffers de fusión?



kdiff3 sourcetree (2)

Esto se ha añadido a la versión troncal. Ahora, de manera predeterminada, las combinaciones de 3 vías muestran cuatro búferes, es decir, "local" (búfer A), "remoto" (búfer B), el resultado de la fusión (búfer C) y el antepasado. Puede cambiar esta configuración predeterminada de la nueva opción ''ediff-show-ancestor''.

La clave ''/'' ahora está vinculada a un nuevo comando ''ediff-toggle-show-ancestor'': alterna entre mostrar 3 (local, remoto y resultado) o 4 (local, remoto, resultado, ancestro).

Estos cambios serán visibles en la versión 26.1 de Emacs.

Soy un usuario de emacs kdiff3 , pero hasta ahora siempre he usado kdiff3 para las kdiff3 de 3 vías con el ancestro, por ejemplo, al realizar git merge o rebase . Realmente me gusta la forma en que kdiff3 no solo puede mostrar simultáneamente las cuatro versiones del texto que se fusiona:

  • el ancestro común (buffer A en kdiff3 )
  • "nuestro" alias "local" (búfer B en kdiff3 )
  • "hiss" aka "remote" (búfer C en kdiff3 )
  • el resultado de la fusión o el objetivo

pero también aclara las diferencias entre A , B y C mediante el resaltado de color. Sin embargo, kdiff3 no es sorprendente en comparación con emacs cuando se trata de la edición de texto del búfer de fusión, ya que kdiff3 no es un editor de texto completo. Tampoco se integra de magit con el excelente paquete magit . Así que estoy intentando cambiar a usar ediff al resolver conflictos en este escenario en particular (he estado usando exitosamente ediff para otros casos de uso durante muchos años).

Sin embargo, a pesar de leer el ediff y la página de EmacsWiki , y preguntar en #emacs IRC, no puedo encontrar una manera de mostrar simultáneamente los 4 buffers. Por defecto muestra:

  • "nuestro" también conocido como "local" (etiquetado como búfer A )
  • "hiss" aka "remote" (etiquetado como buffer B )
  • el resultado de la fusión o el destino (etiquetado como buffer C )

Al presionar / cambiar la ventana que muestra el búfer de resultados de combinación ( C ) para que muestre el búfer del antepasado, pero no puede ver el antepasado y el resultado de la combinación simultáneamente. (Además, la diferencia en el búfer del antepasado se resalta en un solo color que no muestra claramente qué bits difieren de los otros dos búferes visibles ( A y B ), aunque de acuerdo con este hilo , parece que desafortunadamente el refinamiento del antepasado dif tiene No se ha implementado todavía.)

¿Hay una manera fácil de configurar ediff para mostrar simultáneamente los 4 buffers?


No, no hay una manera fácil de configurarlo para hacer eso. Existe la opción ediff-window-setup-function , que puede personalizar para que sea la función que desee. Puede ver los valores predeterminados, ediff-setup-windows-plain y ediff-setup-windows-multi para tener una idea de lo que tendrá que hacer. De hecho, la forma más fácil de proceder será copiar uno de ellos en su configuración de emacs y modificarlo (cambiando el nombre, por supuesto); No son triviales.