diff3 es una utilidad de Unix para comparar tres archivos y mostrar las diferencias entre ellos. diff3 también puede combinar archivos, implementando una combinación de tres vías .
Desarrollador (es) | Laboratorios AT&T Bell |
---|---|
Versión inicial | Enero de 1979 |
Sistema operativo | Unix y similar a Unix |
Tipo | Mando |
Historia e implementaciones
diff3
apareció originalmente en la Versión 7 Unix de 1979. Se encontró una versión muy similar en Berkeley Software Distribution (BSD) y fue heredada en OpenBSD y probablemente 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]
"Diff3" también se ha convertido en un nombre genérico para el algoritmo de fusión de tres vías, específicamente uno que se basa en la conciliación de dos diferencias diferentes derivadas de la primera fuente.
Fusión de un ancestro común
Cuando dos personas han realizado cambios en copias del mismo archivo, diff3 puede producir una salida combinada que contiene 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 activar mediante un comando de la siguiente manera: diff3 mine older yours
.
Esto es como restar el archivo older
del archivo yours
y agregar el resultado al archivo mine
, o como fusionar mine
los cambios que se convertirían older
en yours
. Esta fusión está bien definido, siempre y cuando mine
y older
fósforo en las proximidades de cada uno de tales 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 <<<<<<<
y >>>>>>>
.
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 combinada evita algunos problemas con ed.
Ver también
Referencias
enlaces externos
- Una investigación formal de Diff3
- GNU diffutils manual, "Comparación de tres archivos" y "Fusión de un ancestro común"