如何在SVN中忽略行尾变化和所有空格?

39

结合svn diff --ignore-eol-style和--ignore-all-space不能正常工作:

$ svn diff -x -w --ignore-eol-style -r 1143:1177 somefile
svn: invalid option: --ignore-eol-style

并且,

$ svn diff -x --ignore-eol-style -x --ignore-all-space -r 1143:1177 somefile

只执行最后一个选项:ignore-all-space。

有人之前遇到过这个问题吗?

2个回答

58

svn 命令似乎只支持 一个 -x 选项。这意味着你必须/可以将 所有 选项合并为 一个 参数:

    svn diff -x "-w --ignore-eol-style"

我没有测试外部差异工具是否也是如此。


2
如果你得到了 diff: unrecognized option '--ignore-eol-style' 的错误提示,那么请使用简写形式:svn diff -x -w - Lucas
1
当您想要禁止引入或删除任何换行符时,应使用外部diff程序并添加一些选项 svn diff --diff-cmd '/usr/bin/diff' -x '-u --ignore-all-space --ignore-blank-lines' path1 path2 (-u与svn diff一样提供了统一的样式)。 - Giso Stallenberg

3
您可以使用合适的选项(diff-cmd选项在SVN配置中) 使用外部对比工具。请查看此链接。然后,您就可以自由设置任何对比工具并为其提供参数。您也可以直接使用它:
svn diff --diff-cmd /usr/bin/diff --extensions "-b" -r 1143:1177 somefile

-b参数表示忽略行尾的空格,并将其他一个或多个空格字符序列视为等效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接