如何使svn diff仅显示两个修订版之间的非空白行更改


95

我可以使用类似的东西得到两个修订之间的差异

svn diff -r 100:200 > file.diff

但是问题是由于空白的变化,出现了很多行。有没有办法只写那些实际上有很大改变的行,而不仅仅是空白?

Answers:


95

您可以使用

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

如果要忽略所有空格:

svn diff -x -w | less

资源


1.6版有新功能吗?SVN从来没有这样做。我应该保持最新状态:)
Dan McGrath,2009年

4
1.5.4做到了。但是:--ignore-space-change,而不是--ignore-space-changes
ur。

@丹·麦格 不知道1.6是否是新的,但在akatombo.com/en/comments/ignore_whitespace_in_a_subversion_diff中的条目号8 建议自1.4开始可用
jrbjazz

1
由于EOL也可能被认为是空格,-x --ignore-eol-style因此如果两个修订版本之间的EOL样式不同,则可能需要添加EOL。
nedim 2015年

5
使用svn diff -x -w有时也会有用,因为它会忽略更多的空格(忽略所有空间的别名)
Kendall

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-cmd参数对svn diff使用备用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:这是唯一对我有用的方法。
Lightness Races in Orbit

7

请注意,在这种情况下,行尾不被认为是空格,必须使用以下命令将其忽略:

svn diff -x --ignore-eol-style [etc...]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.