cómo hacer que svn diff muestre solo cambios de línea sin espacios en blanco entre dos revisiones

95

Puedo obtener diferencias entre dos revisiones usando algo como

svn diff -r 100:200 > file.diff

Pero el problema es que hay muchas líneas que aparecen debido al cambio en los espacios en blanco. ¿Hay alguna forma de escribir solo aquellas líneas que realmente cambian de manera significativa y no solo en espacios en blanco?

umar
fuente

Respuestas:

95

Puedes usar

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

Si desea ignorar todos los espacios en blanco:

svn diff -x -w | less

Fuente

jrbjazz
fuente
¿Eso es nuevo para 1.6? SVN nunca solía hacer eso. Debo mantenerme más actualizado :)
Dan McGrath
4
1.5.4 lo hace. Pero: --ignore-space-change, no --ignore-space-changes
ur.
@Dan McG. No sé si es nuevo para 1.6, pero la entrada número 8 en akatombo.com/en/comments/ignore_whitespace_in_a_subversion_diff sugiere que está disponible desde 1.4
jrbjazz
1
Debido a que EOL también puede considerarse un espacio en blanco, -x --ignore-eol-stylepuede ser necesario agregar si el estilo EOL es diferente entre las revisiones.
nedim
5
El uso a svn diff -x -wveces también puede ser útil, ya que ignora más espacios en blanco (alias para ignorar todo el espacio)
Kendall
74

Utilice -x --ignore-space-changeo -x --ignore-all-space. (Ver svn -h diff.)

ur.
fuente
21
svn diff -x -w==svn diff -x --ignore-all-space
chrisg86
7

Puede usar un comando diff alternativo usando el argumento --diff-cmd para svn diff. diff es una buena utilidad que tiene muchas características para ignorar los espacios en blanco.

Por ejemplo:

svn diff --diff-cmd /usr/bin/diff -x "-w"
tschaible
fuente
11
de hecho utilicé svn diff --diff-cmd / usr / bin / diff -x "-w" -r 2000: 2100> jj1 y funciona. gracias
umar
@umar: Esta es la única forma que parece funcionar para mí.
Lightness Races in Orbit
7

Tenga en cuenta que los finales de línea no se consideran espacios en blanco en este escenario y eso debe ignorarse con:

svn diff -x --ignore-eol-style [etc...]
zzxyz
fuente