come fare in modo che svn diff mostri solo i cambiamenti di linee non vuote tra due revisioni


95

Posso ottenere differenze tra due revisioni usando qualcosa di simile

svn diff -r 100:200 > file.diff

Ma il problema è che ci sono molte righe che compaiono a causa del cambiamento negli spazi bianchi. C'è un modo per scrivere solo quelle righe che cambiano effettivamente in modo significativo e non solo negli spazi bianchi?

Risposte:


95

Puoi usare

svn diff -r 100:200 -x -b > file.diff

Se vuoi ignorare tutti gli spazi bianchi:

svn diff -x -w | less

fonte


È nuovo per 1.6? SVN non lo fa mai. Dovrei tenermi più aggiornato :)
Dan McGrath

4
1.5.4 lo fa. Ma: --ignore-space-change, non --ignore-space-changes
ur.

@ Dan McG. Non so se è nuovo per 1.6, ma la voce numero 8 su akatombo.com/en/comments/ignore_whitespace_in_a_subversion_diff suggerisce che è disponibile dalla 1.4
jrbjazz

1
Poiché EOL può essere considerato anche uno spazio bianco, l'aggiunta -x --ignore-eol-stylepotrebbe essere necessaria se lo stile EOL è diverso tra le revisioni.
nedim

5
L'utilizzo a svn diff -x -wvolte può anche essere utile, poiché ignora più spazi bianchi (alias per ignora-tutto-spazio)
Kendall

74

Uso -x --ignore-space-change o -x --ignore-all-space. (Vedi svn -h diff.)


21
svn diff -x -w==svn diff -x --ignore-all-space
chrisg86

7

È possibile utilizzare un comando diff alternativo utilizzando l'argomento --diff-cmd per svn diff. diff è una buona utility che ha molte funzionalità per ignorare gli spazi.

Per esempio:

svn diff --diff-cmd /usr/bin/diff -x "-w"

11
in realtà ho usato svn diff --diff-cmd / usr / bin / diff -x "-w" -r 2000: 2100> jj1 e funziona. grazie
umar

@umar: questo è l'unico modo che sembra funzionare per me.
Gare di leggerezza in orbita il

7

Nota che la fine della riga non è considerata uno spazio bianco in questo scenario e che deve essere ignorato con:

svn diff -x --ignore-eol-style [etc...]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.