diff3 es una utilidad de Unix para comparar tres archivos y mostrar las diferencias entre ellos. diff3 también puede fusionar archivos, implementando una fusión de tres vías .
diff3
Apareció originalmente en la Versión 7 de Unix de 1979. Se encontró una versión muy similar en Berkeley Software Distribution (BSD) y fue heredada en OpenBSD y probablemente en Solaris . [1] [2]
En la mayoría de los sistemas modernos tipo Unix, incluso los derivados de BSD como FreeBSD y NetBSD, el diff3 proporcionado es la versión de GNU en diffutils (anteriormente GNU Tools ). Esta versión tiene la capacidad de fusionar archivos por sí sola sin depender de ed
. Invoca internamente diff
para hacer la comparación, pero también puede usar cualquier otra herramienta compatible. [3]
El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos nativos Win32 de utilidades comunes similares a GNU Unix. [4]
"Diff3" también se ha convertido en un nombre genérico para el algoritmo de fusión de tres vías, específicamente uno basado en la conciliación de dos diferencias diferentes derivadas de la primera fuente.
Cuando dos personas han realizado cambios en copias del mismo archivo, diff3 puede producir una salida combinada que contenga ambos conjuntos de cambios junto con advertencias sobre conflictos. diff3 puede fusionar tres o más conjuntos de cambios en un archivo fusionando dos conjuntos de cambios a la vez.
diff3 puede incorporar cambios de dos versiones modificadas en una versión anterior común. Esto permite a los usuarios fusionar los conjuntos de cambios representados por los dos archivos más nuevos. Esto se puede habilitar usando un comando como este: diff3 mine older yours
.
Esto es como restar el archivo older
del archivo yours
y agregar el resultado al archivo mine
, o como fusionarlo con mine
los cambios que se convertirían older
en yours
. Esta fusión está bien definida siempre que mine
coincida older
en las proximidades de cada uno de dichos cambios. Esto no es cierto cuando los tres archivos de entrada difieren o cuando solo older
difieren; esto es un conflicto. Cuando los tres archivos de entrada difieren, el conflicto es una superposición.
diff3 tiene varios métodos para manejar superposiciones y conflictos. Puede omitir superposiciones o conflictos, seleccionar solo superposiciones o marcar conflictos con <<<<<<<
líneas especiales >>>>>>>
.
diff3 puede generar los resultados de la combinación como un script ed que se puede aplicar al primer archivo para generar la salida combinada. Sin embargo, generar directamente la salida fusionada evita algunos problemas con ed.