【问题标题】:Don't diff merges with SVN不要 diff 与 SVN 合并
【发布时间】:2011-09-12 10:53:25
【问题描述】:
我想了解我在功能分支上所做的所有更改的差异。
目前我使用
svn log --stop-on-copy | awk '/^r.+NAME/{print $1}' | xargs -l svn diff -c > code.diff
不幸的是,这包括将主干合并到我的分支中并使差异混乱的修订。有没有办法让 svn log 跳过合并或让 diff 忽略它们?
【问题讨论】:
标签:
svn
shell
version-control
【解决方案1】:
只要您将主干的所有修订合并到您的分支中,您就可以区分主干(上次合并的修订)和分支(头部)的两个树
一些 ascii 艺术需要澄清:
r6 r9 r11
--------+-------------+------O--> branch
/ (1) / (2) (3) /(4)
trunk -----+-------+--------O----+----------O------>
r4 r6 r7 r9 r12
(1) 你开始你的分支
(2) 你将你的主干与来自主干的所有提交同步
(3) 这是主干上的提交
(4) 您还必须合并 (3) 的提交(因此主干中不会丢失未合并到分支中的修订)
然后您可以区分 branch:r11 与 trunk:r9
请注意,您不能使用trunk:HEAD 进行区分,因为这样会显示trunk r12 的更改。
这正是 reintegrate merge 的工作原理。