首页 > 解决方案 > TortoiseSVN - 如何将分支合并到主干?

问题描述

我使用 TortoiseSVN 已经有一段时间了,但从来没有真正需要分支/合并。我们的实践只是提交到主干(从我们的开发服务器),并从主干更新(在我们的生产服务器上)。

不过最近,我将掌握分支和合并作为我的使命。分支很容易,但合并给我带来了一些麻烦;概念上的合并并不难掌握,但在实际执行中会丢失一些东西。

作为一个简单的分支/合并练习,我从主干开始,它只有一页文本,上面写着“这是在进行任何更改之前的主干”。我将该行更改为“这是来自项目 A 的代码”(不提交到主干),然后从我的工作副本创建一个分支,并选择将我的工作副本保留在主干上而不是切换到那个新分支。所以我用我的“项目A”代码创建了一个分支,但我的工作副本仍然在主干上,上面写着“这是任何更改之前的主干”。然后,我通过使用“这是来自项目 B 的代码”的行重复该过程,为“项目 B”创建了一个分支。

所以我最终在主干上得到了我的工作副本,上面写着“这是在进行任何更改之前的主干”。我为项目 A 和项目 B 有两个独立的分支,我想将这两个分支合并到主干中,一次一个。这个想法是模拟我已经完成了两个不同项目的工作的情况,但我正在等待它们都被批准部署到生产中,我不知道哪个会首先获得批准。或者,如果在我需要开始项目 C 的开发之前,其中任何一个都将获得批准。

现在我假装项目A已经被批准,所以我正在尝试将项目A分支与主干合并。我期待开始合并,收到一条消息说有冲突,然后能够编辑冲突,以便项目A行文本替换合并文件上的主干文本,然后能够标记该冲突已解决。(而且我意识到我可以在合并文件中包含两行,如果我愿意的话,一个在另一个之上)。所以我希望在我合并后,主干将有一行“这是来自项目 A 的代码”,而“这是在任何更改之前的主干”这一行将被删除。

但这并没有像我预期的那样工作。在树干上,我右键单击文件,选择“合并”,然后在对话框中选择“合并 2 棵不同的树”。我为“from”选择了主干 url,为“to”选择了项目 A 分支 url。然后我合并,但是没有提示冲突,并且主干或项目A分支上没有任何变化。我的工作副本保留在主干上,文件仍然只有 1 行文本,“这是在进行任何更改之前的主干”。

我正在查看https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html上的信息,但我不确定我在哪里弄错了。任何帮助表示赞赏。

标签: mergetortoisesvn

解决方案


推荐阅读