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?

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


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.)


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"

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...]
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.