我正在使用svn命令编写python脚本,以在文件上打印2个svn修订版本的完整上下文更改日志(指示更改的完整文件)。
我在svn存储库上有两次提交,我需要这两个修订版的区别。 为此,我可以使用
svn diff -r <rev1>:<rev2>
但是问题在于,在更改的上下文中,这仅给出了很少的一行。例如,如果我有一个100行的文件,并且更改了第50行,这将向我显示第50行的更改,并说出它上方和下方的5-7行。
我需要的是一个命令(或其他方式)来显示完整的文件,其中所做的更改仅显示在第50行。
也尝试使用提到的here的建议,但是对于我手头的情况,这似乎不可行。
在此情况下提供的任何帮助都将受到赞赏。
答案 0 :(得分:0)
对于您提供链接的命令:
svn diff --diff-cmd=diff -x -U10
这里的--diff-cmd
意味着您将使用第三方工具进行区别。而您将要使用的第三方工具是diff
。
因此,首先您需要查看diff
工具是否已安装在系统中以及是否在路径变量中。
您可以通过在命令promt或终端中键入以下命令来检查。
diff --help
对于您的情况,因为您需要整个文件,则应尝试使用以下命令:
svn diff -r 34:35 --diff-cmd=diff -x -y > somefile.txt
在这里,您要求svn进行差异修订34和35,但使用名为diff
的外部差异工具。使用-x
告诉您将标志-y
传递到此外部工具,并将输出存储在文本文件中。
-y
标志告诉外部差异工具进行并排比较,并在两列中输出数据。