¿Cuál es la mejor herramienta de combinación de tres vías? [cerrado]

272

Subversion, Git, Mercurial y otros admiten fusiones de tres vías (combinando la mía, la suya y la revisión "base") y admiten herramientas gráficas para resolver conflictos.

¿Qué herramienta usas? Windows, Mac OS X, Linux, gratis o comercial, lo que sea.

Aquí hay algunos que he usado o escuchado, solo para comenzar la conversación:

(Reconozco que esto es algo así como la Mejor herramienta de diferencias, pero es diferente porque me concentro explícitamente en herramientas de combinación de tres vías; WinMerge está fuera de la lista, por ejemplo).

Dan Fabulich
fuente
44
En realidad, WinMerge tiene una comparación de 3 vías al usarlo con herramientas VCS, solo necesita pasar 3 archivos (izquierda, derecha, resultado) como argumentos a la línea de comando y hace el trabajo.
Zilvinas
3
Es difícil decir cuál es la mejor herramienta de fusión, porque depende de factores subjetivos. Pero si está buscando una característica que marque la diferencia, pruebe semanticmerge.com
Daniel Peñalba
29
¿Cómo se puede cerrar esta pregunta como no constructiva? Tiene 182 votos a favor, 123 estrellas y 11 respuestas, obviamente, muchas personas piensan que es constructivo.
HelloGoodbye
3
@Shuklaswag ¿Cómo se relaciona eso con mi pregunta? Me preguntaba por qué estaba cerrado como "no constructivo".
HelloGoodbye

Respuestas:

167

KDiff3 de código abierto, multiplataforma

La misma interfaz para Linux y Windows, algoritmo muy inteligente para resolver conflictos, expresiones regulares para resolver conflictos automáticamente, integrarse con ClearCase, SVN, Git, MS Visual Studio, archivo combinado editable, comparar directorios

Su teclado de navegación es excelente: Ctrl-flechas para navegar por los diferenciales, Ctrl-1, 2, 3 para hacer la fusión.

Además, consulte https://stackoverflow.com/a/2434482/42473

ingrese la descripción de la imagen aquí

sotto
fuente
10
Más ventajas de KDiff3: misma interfaz para Linux y Windows, algoritmo muy inteligente para resolver conflictos, expresiones regulares para resolver conflictos automáticamente, integrar con ClearCase, SVN y Git, archivo combinado editable, comparar directorios.
neves el
3
@ThomasS Eso no es cierto, vea la otra kdiff3respuesta para ver un ejemplo. kdiff3¡felizmente diferirá y fusionará árboles de directorios completos y lo ha hecho durante muchos años! Es posible que algunas herramientas (como git) solo se ejecuten por archivo, pero otras herramientas (como mercurial) le permitirán felizmente dividir / fusionar en tres partes repositorios completos.
Mark Booth
2
KDiff3 es terrible cuando los cambios locales y de otro tipo difieren en la cantidad de líneas agregadas; si localmente agrega las líneas A, B y C, pero el otro cambio solo agregó A y C, entonces KDiff3 calcula que se agregó A, luego encuentra que B entra en conflicto con C y luego agrega C de todos modos.
Neil
3
¿Alguien tiene una opinión sobre esta respuesta en 2016?
Shadoninja
44
No es compatible desde 2014
Ruslan K.
106

Acabo de ver P4merge desde que escuché sobre eso en otro artículo de blog:

ingrese la descripción de la imagen aquí

Interfaz muy elegante y GRATIS! He sido un usuario fiel de Araxis Merge, pero teniendo en cuenta que esto es gratuito e increíble, le animo a que lo revise.

Dan Esparza
fuente
11
Está disponible para Windows, Mac, Linux, FreeBSD y Solaris 10
Grant Limberg
36
@Art: por supuesto, puede editar el resultado de la fusión en P4Merge. ¡Lo hago todo el tiempo!
Sklivvz
9
p4merge tampoco es "gratuito" para la empresa. La licencia está limitada para uso comercial.
DH4
21
@ DH4 Acabo de recibir un correo electrónico del soporte oficial de Perforce y P4Merge es gratuito para uso comercial (trabajo para MS, no hay más empresa que eso;))
Ohad Schneider
44
No hay soporte de comparación de carpetas en P4merge. Hubiera sido una gran adición a P4Merge.
RuntimeException
95

Beyond Compare 3 Pro admite la fusión de tres vías , y es una herramienta de fusión bastante impresionante. Es comercial (pero vale la pena, en mi humilde opinión) y está disponible en Windows, Linux y Mac OS X.

Como se señaló en un comentario, también es económico.

Ingrese la descripción de la imagen aquí

Nota: Si uno no tiene un conjunto de fusión, es decir, marcadores de fusión residentes en el archivo de destino, Beyond Compare no ofrece comparación / edición de archivos de tres vías. Beyond Compare dice que esa característica está en su lista .

Nota: la combinación de 3 vías es una característica en la edición Pro de Beyond Compare 3 solamente

Joshua McKinnon
fuente
16
+1 Beyond Compare vale fácilmente el precio, especialmente si considera otras características.
jamiei 05 de
2
Bien, pero no hay soporte para seleccionar carpetas
Michael Fitzpatrick
9
Michael, no estoy seguro de lo que quieres decir. Beyond Compare tiene un gran soporte para diferentes carpetas: scootersoftware.com/moreinfo.php .
Bruce Christensen
44
Está claramente indicado en su sitio web : la respuesta actualizada a la versión Pro del estado es un requisito para la fusión de 3 vías
Joshua McKinnon
2
Beyond Compare 4 Pro agregó soporte de fusión de carpetas.
Chris Kennedy
76

Meld Diff Viewer

Solo he tenido buenas experiencias trabajando con Meld. Lo uso cuando tengo que hacer combinaciones de códigos desordenadas entre ramas. Es simple de usar y tiene una interfaz limpia.

  • Fuente abierta
  • Linux, Windows y MacOS compatibles
  • Diferencia de archivos múltiples
  • Soporte de comparación de tres vías

En Ubuntu, la instalación es tan simple como: sudo apt-get install meld

ingrese la descripción de la imagen aquí

Elijah
fuente
3
+1 Meld es un software ingenioso, limpio y "suficiente".
Trevor Bramble
15
Meld es defectuoso y sus pistas visuales son engañosas.
aib
66
Meld ni siquiera funciona con git correctamente.
slikts
65
Meld, desafortunadamente, NO es una herramienta de combinación de tres vías (incluso lo dicen en la página de inicio). Para la fusión tripartita necesita CUATRO ventanas (el archivo base). Pero me encanta la fusión, funciona muy bien.
lzap
8
@lzap, en realidad la fusión era de tres vías, pero no estaba documentada y hace un mes más o menos me di cuenta de que habían eliminado por completo la fusión de tres vías: is.gd/prKX5d Si te quedas con una versión lo suficientemente antigua todavía estás en suerte sin embargo.
Magnus
45

vimdiff Es genial. Todo lo que necesitas es una ventana de tres pies de ancho.

ingrese la descripción de la imagen aquí

Paul Beckingham
fuente
11
Tomó algún tiempo para darse cuenta de que puede hacer "gvimdiff -O branch1.txt base.txt branch2.txt merge.txt" y usar ctrl + w J para mover el búfer de fusión a la parte inferior de la pantalla. ¿Es así como lo usas?
Wim Coenen
Bastante, excepto que uso vim, no gvim.
Paul Beckingham
77
voto negativo, realmente no resuelve conflictos, es solo diff.
piotr
3
vimdiff ahora tiene un buen manejo de git para la fusión de 3 vías (es decir, 4 paneles) - vim.wikia.com/wiki/…
Sonia Hamilton
8
@piotr vimdiff sí resuelve conflictos. Utiliza el comando "diffg <número de búfer>" para crear el archivo combinado en el panel inferior. El panel de combinación de botones es el búfer 1, los otros son 2,3,4 en la parte superior. Para saltar a diffs use [c y] c. Esta es una funcionalidad lista para usar en debian wheezy 7.7.
ikky
37

Fuente Gear Diff Merge :

Multiplataforma, verdaderas combinaciones de tres vías y es completamente gratuito para uso comercial o personal.

ingrese la descripción de la imagen aquí

CMS
fuente
1
He usado DiffMerge durante años y me ha gustado. Sin embargo, leí esta publicación de blog donde el autor estaba buscando herramientas de combinación de diferencias y reduje la lista a DiffMerge y P4Merge. Terminó yendo con P4Merge simplemente porque tenía una mejor interfaz. Acabo de comenzar a usar P4Merge hoy y tendría que estar de acuerdo. En particular, DiffMerge no muestra bien los cambios, los muestra como una eliminación e inserción. Esto puede ser confuso si hay muchos cambios juntos. P4Merge lo muestra mejor.
Simon Tewsi
1
Veo que diffmerge no es gratis , cuesta $ 19
erkfel
3
@erkfel, eso es incorrecto. El registro es opcional y el software es de uso gratuito: "SourceGear DiffMerge es una herramienta galardonada de diferenciación y fusión de archivos que ha ayudado a desarrolladores y aficionados profesionales desde 2007. SourceGear DiffMerge tiene licencia para su uso sin cargo. Sin embargo, al registrar DiffMerge ayudará a financiar el desarrollo, mantenimiento y soporte de nuevos productos. Como una forma de agradecer a nuestros usuarios registrados y alentar los registros adicionales, hemos agregado algunas características nuevas en 4.2 ... "(en el texto del programa)
Muhd
1
Una cosa que encuentro útil en DiffMerge, en comparación con P4Merge (que ahora uso para diferenciar y fusionar en git), es que se integra con Windows File Explorer. En particular, puedo recordar un archivo en una carpeta, luego comparar el archivo recordado con otro en una carpeta diferente. Esto me resulta útil tal vez una o dos veces al mes, donde no tengo que mover dos archivos a la misma carpeta para compararlos (por ejemplo, los scripts SQL que no están bajo el control de la fuente).
Simon Tewsi
1
@SimonTewsi: P4Merge para Mac no requiere que los archivos estén en la misma carpeta. Le permite explorar el sistema de archivos y seleccionar archivos base, primero y segundo desde cualquier lugar de la computadora.
Steve Samuels
32

Araxis Merge . Es comercial, pero vale la pena ... Está disponible para Windows y Mac OS X.

Ingrese la descripción de la imagen aquí

Dave
fuente
55
De acuerdo, es lo mejor que he usado.
Dan Olson
1
Mi observación: es relativamente lento cuando se manejan archivos grandes de alrededor de 5 MB.
Naga Kiran
3
+1 para Araxis. Una de las pocas herramientas que estaba dispuesto a pagar por tener un buen dinero para uso personal. Todo lo demás está desordenado, confuso y palidece en comparación (juego de palabras).
Dan Esparza
8
Después de usar Araxis durante mucho tiempo, mi compañía cambió a KDiff3 por las siguientes razones: (1) Cuando se cancela una fusión en Araxis, el archivo aún se marca como resuelto en TortoiseHg. (2) Araxis muestra una mezcla de la revisión base y el resultado de fusión en el panel "Resultado de fusión", que frecuentemente es confuso. (3) Desde TortoiseHg, KDiff3 se fusionará automáticamente sin la interacción del usuario si puede hacerlo. (4) El algoritmo de fusión de KDiff3 parece hacer un mejor trabajo. Sin embargo, todavía usamos Araxis como nuestra herramienta de comparación :)
Michael Platings
2
Como se menciona en los comentarios para otras respuestas, una herramienta de combinación de 3 vías adecuada tiene 4 paneles: base, local, remoto y resultado . Araxis combina base y resultado, lo que puede generar problemas.
neonblitzer
27

El algoritmo de resolución de conflictos Kdiff3 es realmente impresionante.

Incluso cuando la subversión indica un conflicto, Kdiff3 lo resuelve automáticamente. Hay versiones para Windows y Linux con la misma interfaz. Es posible integrarlo con Tortoise y con su shell de Linux.

Está en la lista de mi software de código abierto favorito. Una de las primeras herramientas que instalo en cualquier máquina.

Puede configurarlo como la herramienta de diferencias predeterminada en Subversion, Git, Mercurial y ClearCase. También resuelve casi todos los conflictos de ClearCase. En Windows, tiene una buena integración con el explorador de Windows: seleccione dos archivos y haga clic derecho para compararlos, o haga clic con el botón derecho para 'guardar en un archivo posterior' y luego seleccione otro para comparar.

El archivo combinado es editable. Tiene atajos de teclado ingeniosos.

También puede usarlo para comparar y fusionar directorios. Ver: Kdiff3 Comparación de directorios

Una característica avanzada es usar expresiones regulares para definir fusiones automáticas.

Mi única molestia es que es un poco difícil de compilar si no está presente en su repositorio de distribución favorito.

neves
fuente
3
Estoy de acuerdo con el algoritmo de fusión. Es increíblemente sofisticado, y extrañamente parece "saber" lo que quiere hacer de una manera que otras herramientas no pueden. Regularmente aplasta diff3 y Subversion (blarg), e incluso puede ser útil con una fusión Git.
kevinarpe
¿Dónde están los atajos de teclado para ir a continuación y elegir a / b / c?
señor
@mylord: use un pequeño Auto-Advance-delay y los atajos Ctrl-1/2/3 para seleccionar A / B / C para muchos conflictos.
neves
¿Algo ha reemplazado a KDiff3 por ti? Gran usuario de él, pero me encuentro viendo si hay una mejor alternativa en estos días
chrispepper1989
1
@ chrispepper1989, todavía uso KDiff3 en Git hoy. Nunca he encontrado una aplicación de combinación de 3 vías que sea significativamente mejor que KDiff3. P4Merge tiene una interfaz más moderna, pero cuando lo probé no pudo editar el archivo combinado (creo que puede hacerlo ahora).
neves
13

Me encanta Ediff . Viene integrado con GNU Emacs .

Para hacer una diferencia de tres vías, use ediff-files3(para seleccionar tres archivos) o ediff-buffer3(para seleccionar tres buffers ya abiertos). Obtendrá una pantalla como esta:

diferencial de tres vías en emacs

Tenga en cuenta el resaltado de la diferencia de palabras.

Usted puede golpear no pir a los diferenciales siguiente / anterior, mientras que abcopiará la región de tampón A (el que está más a la izquierda) a tampón B (el del medio), y lo mismo para otras combinaciones de dos letras de a, b, c; rbrestaurará la región en el búfer b. Presiona ?para obtener un menú de ayuda rápida o lee el excelente manual sobre la fusión diff3 en Emacs .

jcrossley3
fuente
66
Por mucho que me encanta el ediff, solo veo dos buffers arriba ... se supone que una fusión de 3 vías tiene 3 o 4 ventanas: las tres se fusionan (local, remota y su base de ancestro común), y la salida de fusión final . Hay qué parece ser una combinación de 3 vías en ediff (llama ediff-merge-with-ancestor) pero no estoy seguro de si tiene 3 o 4 paneles, y también la captura de pantalla anterior no reflejar eso.
ShreevatsaR
Editado para mostrar una diferencia tridireccional @ShreevatsaR
unhammer
@unhammer Gracias, esto es mejor, pero todavía solo muestra 3 ventanas, por lo que no está claro que sea un verdadero diferencial de 3 vías (que tendría 4 ventanas; vea el kdiff3 y otros ejemplos). Si lo que se muestra en la captura de pantalla son las tres cosas que se fusionan, ¿dónde está la salida?
ShreevatsaR
Modifica destructivamente uno (¡o más!) De los buffers. Es por eso que mencioné que abcopiará la región del búfer a al búfer b. No creo que haya una versión de cuatro ventanas edifftodavía. (Sé que emergeusa un búfer de salida dedicado en su lugar, pero emerge-files-with-ancestorno muestra el antepasado, solo lo usa para adivinar la versión correcta al ver cuál está de acuerdo con el antepasado)
Unhammer
11

Ultracompare . Es realmente bueno, maneja bien archivos grandes (más de 1 GB), está disponible para Windows / Mac / Linux y es comercial, pero vale la pena.

Captura de pantalla de UltraCompare Professional en Windows

MrTelly
fuente
No sé cómo configurarlo para admitir la fusión de 3 vías ... ¿Puede mostrar un archivo base en el medio, 2 archivos modificados a la izquierda y a la derecha, para que pueda ver qué se cambia en ambos archivos en función de la base archivo y tiene el resultado combinado de 2 archivos modificados en la parte inferior? Estoy usando UltraCompare 17.0
Ricky
1
Un poco de google encontró este ultraedit.com/support/tutorials-power-tips/ultracompare/… - habla sobre la fusión de 3 vías en la fusión avanzada del paso 6.
MrTelly
11

Diffuse es una herramienta de combinación de tres vías fácil de usar. Es compatible con todas las plataformas y sistemas de control de versiones que mencionó, y puede comparar más de tres archivos al mismo tiempo.

ingrese la descripción de la imagen aquí

Jordan Ryan Moore
fuente
2
¡E incluso admite la comparación de archivos N al mismo tiempo! Esto es útil si necesita comparar archivos de configuración de muchas aplicaciones homogéneas.
Pius Raeder
Uso Diffuse para mis más de tres comparaciones de archivos
mohas
6

xxdiff si estás en tierra de Linux.

Ingrese la descripción de la imagen aquí

Mark Harrison
fuente
4

El resumen es que encontré que ECMerge es un gran producto, aunque comercial. http://www.elliecomputing.com/products/merge_overview.asp

ingrese la descripción de la imagen aquí

También estoy de acuerdo con MrTelly en que Ultracompare es muy bueno. Una buena característica es que comparará documentos RTF y Word, lo cual es útil cuando terminas programando en word con los vendedores y no manejan sus documentos correctamente.

Steve Midgley
fuente
El primer enlace no funciona, devuelve 500 error. Si el recurso se ha movido, ajuste la URL.
Sergey P. aka azure
@ SergeyP.akaazure: perdón por eso. Mi blog no funciona - Eliminé el enlace ..
Steve Midgley