52

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

4

7 回答 7

70

你可以从:

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

(您的存储库路径在哪里http://REPOS,包括 和 的父级trunkbranches

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

于 2009-11-24T01:04:57.653 回答
17

如果您只是在寻找高级别的不同文件并且不想查看所有内容,请使用:

svn diff ^/trunk ^/branches/dev --summarize

(这比较了主干和开发分支)

于 2015-10-09T17:44:52.743 回答
6

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

于 2013-07-10T08:25:01.377 回答
4

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

svn diff对我来说一个有用的选择是--ignore-properties. 我的两个分支最终的代码相同,但合并历史不同。

使用--ignore-properties允许我向自己证明情况确实如此,而无需涉足大量的“svn:mergeinfo”属性更改。

于 2017-05-18T10:10:22.147 回答
1

感谢您提供信息,我会添加一些内容来提高差异结果的可读性。如果您使用:svn diff svn://url:9090/branches/PRD_0002 svn://url:9090/branches/TST_0003 >svn_diff_filename。文本

您可以使用: findstr "Index:" C:\path\svn_diff_filename.txt >svn_diff_file_list.txt

这将为您带来一个可读的文件列表,其中包含任何差异。

于 2012-03-22T13:30:02.027 回答
0

这是Murray Cumming 的一篇文章,描述了非显而易见的过程:

  • 发现修订号:您需要知道每个分支中最新版本的修订号。看起来 svn log 是唯一的方法。
  • cd 进入分支目录之一,例如主干。
  • 向 svn diff 命令提供修订号:svn diff -r123:145
于 2009-11-24T00:59:56.823 回答
0

要区分分支的两个修订版:

svn diff -r rLATEST:rOLD

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

于 2015-06-05T09:51:08.423 回答