He intentado usar el diff
comando linux en el pasado sin mucha suerte o paciencia. Por lo general, termino usando una utilidad GUI como DiffMerge o Kdiff.
Recientemente comencé a intentar usar de diff
nuevo para comparar archivos en sistemas remotos a través de ssh, y he encontrado que la -y / --side-by-side
opción es muy útil, pero todavía siento que no estoy aprovechando al máximo esta utilidad.
Tengo curiosidad por saber cómo lograr lo siguiente:
- Resalte los cambios o utilice la codificación de colores para que la salida sea más legible
- Fusionar: seleccione líneas con diferencias y realice los cambios en uno de los archivos
Además, no he encontrado muchos buenos ejemplos cuando busco en Google, así que si tiene algunos secretos de Linux-fu para aprovechar al máximo las diferencias, ¿podría compartir? Voy a comparar principalmente archivos de configuración basados en texto, pero cualquier truco y consejo sería maravilloso.
Para referencia : la utilidad DiffMerge muestra fácilmente los cambios uno al lado del otro con resaltado de color. Los íconos en la parte superior le permiten cambiar entre las vistas de "mostrar todo", "mostrar diferencias" y "mostrar diferencias con el contexto". Me encantaría parte de esta funcionalidad en el símbolo del sistema.
PD: También debo señalar que otra opción que encuentro bastante útil es la --suppress-common-lines
que aprendí en esta publicación de blog concisa y legible .
fuente
Respuestas:
En ninguna secuencia particular:
meld
es un programa diff muy bueno que hace muy buenos diffs y combinaciones de tres vías.git config --global merge.conflictstyle diff3
le ofrece una salida de combinación de tres vías para usar con herramientas comomeld
.wdiff
hace la palabra diffs, muy agradable si está coloreado :wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
diff
salida, generalmente uso la opción--ignore-all-space
(-w
)diff-ignore-moved-lines
* hace lo que dice en la etiqueta.difff
* se puede usar para diferenciar solo las líneas que coinciden en campos determinados.* Descargo de responsabilidad: soy el autor, y los desarrollé para ayudar con la CLI y la GUI que difieren y se fusionan.
fuente
diffuse
bastante.He encontrado
vimdiff
que es muy útil.fuente
Para colorear en el diff, debe mirar http://colordiff.sourceforge.net/ . Esto es solo una envoltura alrededor de diff y, como tal, todas las opciones de comando aún funcionan.
En caso de que tenga ubuntu simplemente escriba:
Corriendo el riesgo de no cumplir con su caso de uso,
git
es un VCS muy agradable que se integra bien con muchas herramientas diferentes y de fusión (tanto de línea de comandos como de GUI). Pruébalo si es una opción.fuente
Tratar
sdiff
diff
también tiene opciones (-e
o-ed
) para crear un script de fusión para usar coned
sdiff
,diff
yed
debe ser parte de su caparazón donde quiera que vaya.El software de control de versiones, probablemente, también tiene una
diff
y lamerge
herramienta incorporada.fuente