2012-01-11 18 views
6

Tengo problemas con git diff --word-diff. El problema es que cuando diff obtiene el archivo sin nuevas líneas (un archivo de línea) lo diferencia línea por línea. Y quiero diferir palabra por palabra.git diff --word-diff con archivos en línea

Esto es lo que sucede cuando estoy comparando archivos sin saltos de línea:

git diff -a --word-diff=plain file1 file2 
diff --git a/file1 b/file2 
index 3526254..0515a63 100644 
--- a/file1 
+++ b/file2 
@@ -1 +1 @@ 
[- a a a a a a a a a a-] 
No newline at end of file 
{+a a a a a ab a a a a+} 

Y si añado salto de línea al final de los archivos todo funciona como se espera:

git diff -a --word-diff=plain file1 file2 
diff --git a/file1 b/file2 
index 1756d83..1ec45b9 100644 
--- a/file1 
+++ b/file2 
@@ -1,2 +1,2 @@ 
a a a a a [-a -]{+ab +}a a a a 
+1

AFAIK '--word-diff' es un paso posterior al procesamiento después de que las líneas se difirieron (básicamente diffs las líneas" añadidas "con" eliminadas "). Parece que esto es un error en Git, tal vez puedas enviar un informe de error a la lista de correo Git – knittl

+0

Acabo de enviarles una carta. Parece un error. – user1143094

Respuesta

6

escribí a GIT equipo y respondieron que es un error de hecho. También me envían un parche para ese caso. Parece que se solucionaría en 1.7.9.