2011-02-13 19 views
10

¿Hay un programa de línea de comandos que da recursiva diff basado en palabras (en 2 directorios)?línea de comando recursiva basada en palabras diff?

diff -u es recursivo, pero no hace comparación palabra por palabra. wdiffdwdiff y lo hace en base palabra diff pero no son opciones incorporadas para diff recursivo.

Me gustaría canalizar el resultado a colordiff por lo que un programa que genera una salida que colordiff entiende sería especialmente útil. ¿Alguna sugerencia? ¡Gracias!

CC

+0

Esto realmente no responde a su pregunta (por lo tanto, publicar como un comentario), pero si usted está en un sistema con una GUI, entonces podría ser más fácil utilizar un programa de interfaz gráfica de usuario. Encuentro meld (http://meld.sourceforge.net/) bastante bueno. –

Respuesta

20

Git puede hacerlo y color de salida:

Los siguientes menudo funciona:

git diff --color-words path1 path2 

pero en general es posible que tenga que hacer

git diff --no-index --color-words path1 path2 

Ni archivo incluso necesita estar en un repositorio git!

--no-index es necesario si usted y las rutas están en un árbol de trabajo de git. Se puede elidir si usted o uno de los archivos están fuera de un árbol de trabajo de git.

Manpage: https://git-scm.com/docs/git-diff/1.8.5 (y más tarde ...)

git diff --no-índice [--options] [-] [...]

Esta forma es a compare los dos caminos dados en el sistema de archivos. Puede omitir la opción --no-index cuando ejecuta el comando en un árbol de trabajo controlado por Git y al menos uno de los puntos de rutas fuera del árbol de trabajo , o al ejecutar el comando fuera de un árbol de trabajo controlado por Git .

+0

Eso es mágico ... ¡¡Gracias !! –

+0

+1 - Nunca supe que podrías usar git diff en archivos fuera de un repositorio. Gracias. –

Cuestiones relacionadas