comment faire pour que svn diff montre uniquement les changements de ligne non blancs entre deux révisions

95

Je peux obtenir des différences entre deux révisions en utilisant quelque chose comme

svn diff -r 100:200 > file.diff

Mais le problème est qu'il y a de nombreuses lignes qui apparaissent en raison du changement dans les espaces. Existe-t-il un moyen de n'écrire que les lignes qui changent réellement de manière significative et pas seulement dans des espaces?

umar
la source

Réponses:

95

Vous pouvez utiliser

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

Si vous souhaitez ignorer tous les espaces:

svn diff -x -w | less

La source

jrbjazz
la source
Est-ce nouveau pour 1.6? SVN n'utilise jamais pour faire ça. Je devrais rester plus à jour :)
Dan McGrath
4
1.5.4 le fait. Mais: --ignore-space-change, pas --ignore-space-changes
ur.
@Dan McG. Je ne sais pas si c'est nouveau pour 1.6, mais l'entrée numéro 8 sur akatombo.com/en/comments/ignore_whitespace_in_a_subversion_diff suggère qu'il est disponible depuis 1.4
jrbjazz
1
Étant donné que EOL peut également être considéré comme un espace blanc, l'ajout -x --ignore-eol-stylepeut être nécessaire si le style EOL est différent entre les révisions.
nedim le
5
L'utilisation svn diff -x -wpeut parfois aussi être utile, car elle ignore plus d'espaces (alias pour ignore-all-space)
Kendall
74

Utilisez -x --ignore-space-changeou -x --ignore-all-space. (Voir svn -h diff.)

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

Vous pouvez utiliser une autre commande diff en utilisant l'argument --diff-cmd pour svn diff. diff est un bon utilitaire qui possède de nombreuses fonctionnalités pour ignorer les espaces.

Par exemple:

svn diff --diff-cmd /usr/bin/diff -x "-w"
tschaible
la source
11
en fait, j'ai utilisé svn diff --diff-cmd / usr / bin / diff -x "-w" -r 2000: 2100> jj1 et cela fonctionne. merci
umar
@umar: C'est la seule façon qui semble fonctionner pour moi.
Courses de légèreté en orbite
7

Notez que les fins de ligne ne sont pas considérées comme des espaces dans ce scénario et que cela doit être ignoré avec:

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