为了账号安全,请及时绑定邮箱和手机立即绑定

如何在python脚本中获取svn的两个修订的完整上下文差异?

如何在python脚本中获取svn的两个修订的完整上下文差异?

红糖糍粑 2021-04-06 06:46:48
我正在使用svn命令编写python脚本,以在文件上打印2个svn修订版本的完整上下文更改日志(指示更改的完整文件)。我对一个svn repo有两次提交,我需要这两个修订版的区别。为此,我可以使用它svn diff -r <rev1>:<rev2>但是问题在于,在更改的上下文中,这只给了很少的限制。例如,如果我有一个100行的文件,并且更改了第50行,这将向我显示第50行的更改,并在其上下分别显示5-7行。我需要的是一个命令(或其他方式)向我显示完整的文件,其中所做的更改仅显示在第50行中。还尝试使用此处提到的建议,但是对于我来说,这似乎不可行。
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

对于您提供的链接的命令:

svn diff --diff-cmd=diff -x -U10

在这里,这--diff-cmd意味着您将使用第三方工具来有所作为。而您将要使用的第三方工具是diff。因此,首先您需要查看该diff工具是否已安装在系统中以及是否在路径变量中。

您可以通过在命令promt或终端中键入以下内容来进行检查。 diff --help

//img1.sycdn.imooc.com//60755fd40001ab1a08020298.jpg

对于您的情况,因为您需要整个文件,则应尝试使用以下命令:

svn diff -r 34:35 --diff-cmd=diff -x -y > somefile.txt

在这里,您要求svn进行差异修订34和35,但使用名为的外部差异工具diff。随着-x你告诉你传递的标志-y这一外部工具和存储在一个文本文件中的输出。

-y标志告诉外部diff工具进行并排比较,并在两列中输出数据。

文本文件将如下所示。这将是一个非常长的文件,因为它具有所有已更改文件的全部。

//img1.sycdn.imooc.com//60755fe70001793017720944.jpg

查看完整回答
反对 回复 2021-04-13
  • 1 回答
  • 0 关注
  • 407 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信