【发布时间】:2010-12-19 17:12:56
【问题描述】:
如何比较一个分支与另一个分支?我想将一个分支与主干中的最新版本进行比较。
【问题讨论】:
标签: svn branch diff branching-and-merging
如何比较一个分支与另一个分支?我想将一个分支与主干中的最新版本进行比较。
【问题讨论】:
标签: svn branch diff branching-and-merging
这是一个post from Murray Cumming,它描述了非显而易见的过程:
svn diff -r123:145
【讨论】:
trunk 发生了什么变化?抱歉,如果我遗漏了什么 - 这里已经很晚了......
HEAD。但这不是 OP 所要求的——他想在他的分支和主干之间进行比较,而不是在同一分支中的两个修订之间进行比较。
你可以从:
svn diff http://REPOS/trunk http://REPOS/branches/B
(其中http://REPOS 是您的存储库路径,包括trunk 和branches 的父级。)
这将打印大量文本,包括所有文本更改,但不包括二进制更改,除了说明它们发生的地点和时间。
【讨论】:
svn diff ^/trunk ^/branches/B
感谢提供信息的人,我会添加一些内容来提高差异结果的可读性。如果您使用: 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
这将为您带来一个可读的文件列表,其中包含任何差异。
【讨论】:
我通常将两个分支(或分支和主干)检出到目录中。 然后我使用 Kompare 之类的图形工具或类似工具(取决于您的偏好、操作系统……)。 当我需要执行复杂的合并时,这对我很有帮助。
【讨论】:
区分一个分支的两个版本:
svn diff -r rLATEST:rOLD
使用svn log 获取不同的修订版本。使用svn log -l 5 可以限制日志中的修订数量。只会显示最后 5 个修订版。
【讨论】:
如果您只是在寻找高级别的文件不同并且不想查看所有内容,请使用:
svn diff ^/trunk ^/branches/dev --summarize
(比较主干和开发分支)
【讨论】:
svn diff \^/[SUBPROJECT]/develop \^/[SUBPROJECT]/feature/myfeature/
由于缺乏声誉不会让我将此添加为对现有答案的评论,我不得不将其添加为单独的。
svn diff 对我来说有用的选项是--ignore-properties。我的两个分支最终的代码相同,但合并历史不同。
使用--ignore-properties 让我可以向自己证明情况确实如此,而无需费力地处理大量的“svn:mergeinfo”属性更改。
【讨论】: