我正在使用 svn 命令编写一个 python 脚本来打印文件上 2 个 svn 修订版的完整上下文更改日志(带有指示的更改的完整文件)。
我在 svn 存储库上有两个提交,我需要这两个修订版的差异。 为此我可以使用
svn diff -r <rev1>:<rev2>
但问题是,这仅给出了更改上下文中的几行内容。例如,如果我有一个 100 行的文件,并且我在第 50 行进行了更改,这将显示第 50 行的更改,并显示其上方和下方的 5-7 行。
我需要的是一个命令(或其他方式)来向我显示完整文件,其中仅在第 50 行显示更改。
还尝试使用提到的建议 here ,但是对于我手头的场景来说,这似乎并不奏效。
对此上下文的任何帮助表示赞赏。
最佳答案
对于您提供链接的命令:
svn diff --diff-cmd=diff -x -U10
这里的--diff-cmd
表示您将使用第三方工具来进行差异处理。您将要使用的第三方工具是diff
。
因此,首先您需要查看您的系统中是否安装了 diff
工具并且位于您的路径变量中。
您可以通过在命令提示符或终端中键入以下内容来检查这一点。
diff --help
对于您的情况,因为您需要整个文件,您应该尝试类似以下命令的操作:
svn diff -r 34:35 --diff-cmd=diff -x -y > somefile.txt
在这里,您要求 svn 比较版本 34 和 35,但使用名为 diff
的外部比较工具。使用 -x
表示您将标志 -y
传递给此外部工具并将输出存储在文本文件中。
-y
标志告诉外部 diff 工具进行并排比较并以两列输出数据。
关于python - 如何在 python 脚本中获取 svn 两个修订版的完整上下文差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50993808/