这是第一次尝试将最新的主干头合并到我的分支机构.我只想将我团队中其他开发人员的最新更新发送到我的分支机构.我正在使用Subversion 1.6.7.所以在Merge对话框中我选择了"Merge 2 different trees"选项.
我的问题是:
我的分支的最新版本是358,主线干线是357.所以当我进行测试合并时,它会删除358(我的分支)中的任何新内容.因为我的分支有更高的版本号,我应该从我的主干到分支而不是从分支到主干吗?我知道在各种博客的例子中,他们说要从分支到主干,但在我的情况下,分支有更高的版本号.
替代文字http://elbalazo.net/post/repobrowser.jpg
替代文字http://elbalazo.net/post/merge.jpg
现在在测试合并期间,我不明白为什么它会删除我的主干中不存在的那些文件(我在开发过程中添加了新的分支):
替代文字http://elbalazo.net/post/mergeoptions.jpg
替代文字http://elbalazo.net/post/revisiongraph.jpg
替代文字http://elbalazo.net/post/deleted.jpg
现在让我们反过来......这就是我认为它应该去的方式(因为那时我将从较低的修订版(357)转到更高版本(358).所以这里它将从主线主干到TO我的分支:
alt text http://www.elbalazo.net/post/mergdialog_trunk_to_branch.jpg alt text http://www.elbalazo.net/post/testmerge_trunk_to_branch.jpg 更新后的评论:
好的,所以当我尝试trunk-to-trunk时,这就是我得到的:
alt text http://www.elbalazo.net/post/merge_trunk_to_trunk.jpg
乌龟合并非常好,但你必须知道它的诀窍.
合并时,首先使用顶部单选按钮选项(合并一系列修订)并始终合并到目标中.因此,右键单击目标工作副本,选择合并,然后在合并对话框中编辑URL,以便From:字段包含要从中更改的分支.
当你第一次看到它时有点倒退,但是一旦你理解了正在发生的事情它就会更有意义 - 你在合并对话框中对URL进行了所有更改,并将它们应用到你的工作副本中.这是理解的技巧 - 你没有合并文件(就像你手动那样),但是你重新应用了对源分支所做的更改.
使用"显示日志"按钮选择所需的修订.如果有mergeinfo(即先前合并的修订版),它们将显示为灰色.
所有这一切的另一部分是SVN在处理树冲突方面不太好 - 如果您添加或删除了目录,SVN会询问您的意图(即树冲突).您所要做的就是解析目录并选择实际删除或添加的目录.这样做是因为它无法确定文件是被删除(或添加)还是仅重命名.
我现在一直在合并 - 这很容易 - 但我不认为我曾经在第一个对话框中使用过其他两个合并选项.始终从URL合并到您的工作副本; 合并完成后,您可以查看结果并在您满意后提交.
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |