как заставить svn diff показывать только изменения строки без пробелов между двумя ревизиями


95

Я могу получить различия между двумя версиями, используя что-то вроде

svn diff -r 100:200 > file.diff

Но проблема в том, что есть много строк, которые появляются из-за изменения пробелов. Есть ли способ записать только те строки, которые действительно существенно меняются, а не только в пробелах?

Ответы:


95

Ты можешь использовать

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

Если вы хотите игнорировать все пробелы:

svn diff -x -w | less

Источник


Это ново для 1.6? SVN никогда этого не делал. Я должен быть в курсе :)
Дэн МакГрат

4
1.5.4 это делает. Но: --ignore-space-change, а не --ignore-space-changes
ur.

@ Дэн МакГи. Не знаю, новинка ли для 1.6, но запись номер 8 на akatombo.com/en/comments/ignore_whitespace_in_a_subversion_diff предполагает, что она доступна с 1.4
jrbjazz

1
Поскольку EOL также может считаться пробелом, -x --ignore-eol-styleможет потребоваться добавление , если стиль EOL отличается в разных версиях.
недим

5
Использование svn diff -x -wиногда также может быть полезно, поскольку оно игнорирует больше пробелов (псевдоним для ignore-all-space)
Кендалл

74

Используйте -x --ignore-space-changeили -x --ignore-all-space. (См svn -h diff.)


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

7

Вы можете использовать альтернативную команду diff с аргументом --diff-cmd для svn diff. diff - хорошая утилита, в которой есть множество функций для игнорирования пробелов.

Например:

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

11
на самом деле я использовал svn diff --diff-cmd / usr / bin / diff -x "-w" -r 2000: 2100> jj1, и он работает. спасибо
umar

@umar: Это единственный способ, который мне подходит.
Гонки

7

Обратите внимание, что в этом сценарии конец строки не считается пробелом, и его нужно игнорировать:

svn diff -x --ignore-eol-style [etc...]
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.