2012-01-11 8 views
6

Ho problemi con git diff --word-diff. Il fatto è che quando diff ottiene file senza newline (un file di riga) lo differisce riga per riga. E voglio differire parola per parola.git diff --word-diff con file on line

Ecco cosa succede quando sto paragonando i file senza ritorni a capo:

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+} 

E se aggiungo nuova riga alla fine del file tutto funziona come previsto:

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' è un passo di post-elaborazione dopo che le righe sono state diffuse (si differenzia sostanzialmente le righe" aggiunte "con" rimosse "). Sembra che questo sia un bug in Git, forse puoi mandare un bug report alla mailing list di Git – knittl

+0

Ho appena inviato loro una lettera. Sembra un insetto. – user1143094

risposta

6

ho scritto a GIT squadra e hanno risposto che è un bug davvero. Inoltre mi mandano una patch per quel caso. Sembra che venga corretto in 1.7.9.