jak sprawić, by svn diff pokazywał tylko zmiany linii nie będące białymi znakami między dwiema wersjami


95

Mogę uzyskać różnice między dwiema wersjami, używając czegoś takiego jak

svn diff -r 100:200 > file.diff

Ale problem polega na tym, że jest wiele wierszy, które pojawiają się z powodu zmiany białych znaków. Czy istnieje sposób na zapisanie tylko tych wierszy, które faktycznie zmieniają się w znaczący sposób, a nie tylko odstępami?

Odpowiedzi:


95

Możesz użyć

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

Jeśli chcesz zignorować wszystkie spacje:

svn diff -x -w | less

Źródło


Czy to nowość w wersji 1.6? SVN nigdy tego nie robił. Powinienem być bardziej aktualny :)
Dan McGrath

4
1.5.4 to robi. Ale: --ignore-space-change, nie --ignore-space-changes
ur.

@Dan McG. Nie wiem, czy jest nowy dla 1.6, ale wpis numer 8 na akatombo.com/en/comments/ignore_whitespace_in_a_subversion_diff sugeruje, że jest dostępny od 1.4
jrbjazz

1
Ponieważ EOL może być również uważany za odstępy, dodanie -x --ignore-eol-stylemoże być konieczne, jeśli styl EOL różni się w poszczególnych wersjach.
nedim

5
Używanie svn diff -x -wmoże być czasami przydatne, ponieważ ignoruje więcej białych znaków (alias dla ignorowania-całej-spacji)
Kendall

74

Użyj -x --ignore-space-changelub -x --ignore-all-space. (Zobacz svn -h diff.)


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

7

Możesz użyć alternatywnego polecenia diff, używając argumentu --diff-cmd dla svn diff. diff to dobre narzędzie, które ma wiele funkcji do ignorowania białych znaków.

Na przykład:

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

11
faktycznie użyłem svn diff --diff-cmd / usr / bin / diff -x "-w" -r 2000: 2100> jj1 i działa. dzięki
umar

@umar: To jedyny sposób, który wydaje mi się skuteczny.
Wyścigi lekkości na orbicie

7

Zwróć uwagę, że w tym scenariuszu końce linii nie są traktowane jako białe znaki i należy je zignorować, wykonując:

svn diff -x --ignore-eol-style [etc...]
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.