SVN分支比较

时间:2009-11-24 00:55:05

标签: svn branch diff branching-and-merging

如何将一个分支与另一个分支进行比较?我想比较一个分支与trunk中的最新版本。

7 个答案:

答案 0 :(得分:62)

你可以从:

开始
svn diff http://REPOS/trunk http://REPOS/branches/B

http://REPOS是您的存储库路径,包括trunkbranches的父级。)

这将打印大量文本,包括所有文本更改,但不包括二进制更改,除非说明它们发生的位置和时间。

答案 1 :(得分:4)

我通常会将两个分支(或分支和主干)签出到目录中。 然后我使用像Kompare或类似的图形工具(取决于您的喜好,操作系统,......)。 当我需要执行复杂的合并时,这对我很有帮助。

答案 2 :(得分:3)

由于缺乏声誉,我不会将此作为对现有答案的评论添加,我必须将其添加为单独的答案。

svn diff给我的一个有用选项是--ignore-properties。我的两个分支最终完成了相同的代码,但具有不同的合并历史。

使用--ignore-properties允许我向自己证明这是事实,没有涉及大量的“svn:mergeinfo”属性更改。

答案 3 :(得分:1)

Here's the documentation用于svn diff命令。

答案 4 :(得分:1)

感谢信息人员,我会添加一些东西来提高diff结果的可读性。如果您使用: svn diff svn:// url:9090 / branches / PRD_0002 svn:// url:9090 / branches / TST_0003> svn_diff_filename.txt

您可以使用: findstr“索引:”C:\ path \ svn_diff_filename.txt> svn_diff_file_list.txt

这将为您提供可读的文件列表,这些文件有任何差异。

答案 5 :(得分:0)

这是一个post from Murray Cumming,描述了非显而易见的过程:

  • 发现修订号:您需要知道每个分支中最新版本的修订号。看起来svn log是唯一的方法。
  • cd进入其中一个分支目录,例如trunk。
  • 将修订号提供给svn diff命令:svn diff -r123:145

答案 6 :(得分:0)

要在分支的两个修订版之间进行区分:

svn diff -r rLATEST:rOLD

使用svn log获取不同的修订版。使用可以使用svn log -l 5限制日志中的修订数量。只会显示最后5个修订版。