como fazer svn diff mostrar apenas mudanças de linhas que não sejam espaços em branco entre duas revisões

95

Posso obter diferenças entre duas revisões usando algo como

svn diff -r 100:200 > file.diff

Mas o problema é que muitas linhas aparecem devido à mudança nos espaços em branco. Existe uma maneira de escrever apenas as linhas que realmente mudam de forma significativa e não apenas nos espaços em branco?

umar
fonte

Respostas:

95

Você pode usar

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

Se você deseja ignorar todos os espaços em branco:

svn diff -x -w | less

Fonte

jrbjazz
fonte
Isso é novo para o 1.6? SVN nunca costumava fazer isso. Devo me manter mais atualizado :)
Dan McGrath
4
1.5.4 faz isso. Mas: --ignore-space-change, não --ignore-space-changes
ur.
@Dan McG. Não sei se é novo para 1.6, mas a entrada número 8 em akatombo.com/en/comments/ignore_whitespace_in_a_subversion_diff sugere que está disponível desde 1.4
jrbjazz
1
Como o EOL também pode ser considerado um espaço em branco, a adição -x --ignore-eol-stylepode ser necessária se o estilo de EOL for diferente entre as revisões.
nedim
5
Usar svn diff -x -wàs vezes também pode ser útil, pois ignora mais espaços em branco (apelido para ignore-all-space)
Kendall
74

Use -x --ignore-space-changeou -x --ignore-all-space. (Veja svn -h diff.)

você
fonte
21
svn diff -x -w==svn diff -x --ignore-all-space
chrisg86,
7

Você pode usar um comando diff alternativo usando o argumento --diff-cmd para svn diff. diff é um bom utilitário com muitos recursos para ignorar os espaços em branco.

Por exemplo:

svn diff --diff-cmd /usr/bin/diff -x "-w"
tschaible
fonte
11
na verdade, usei svn diff --diff-cmd / usr / bin / diff -x "-w" -r 2000: 2100> jj1 e funciona. obrigado
umar
@umar: Esta é a única maneira que parece funcionar para mim.
Lightness Races in Orbit
7

Observe que o fim de linha não é considerado espaço em branco neste cenário e deve ser ignorado com:

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