如何使用Eclipse合并工具将CVS分支合并到HEAD?

38

我目前正在使用团队-->分支创建的分支上工作。如何使用团队-->合并将我的更改合并回主干?

6个回答

52

我也遇到了同样的问题。以下是我进行合并的步骤(大部分来自在线Eclipse帮助):

  1. 创建开发分支时(Team -> Branch),确保为分支创建了根标记,这是CVS用于确定哪些更改是由分支引起的,以及可能来自其他工作的哪些更改。
  2. 在分支上完成开发,并将所有更改提交(Team -> Commit)回存储库。
  3. 现在,所有分支的更改都已在存储库中,我加载要合并到的目标分支,通常为HEAD(Team -> Switch to Another Branch or Version)。

现在您已经准备开始实际的合并过程。在此过程中,您将选择应导入哪些更改,哪些应被丢弃。将此过程视为半自动化的开发周期,实际上是一个检出、进行更改、提交循环。只不过,您不必手动插入自己的更改,因为有比较工具可以帮助您完成。毕竟,您已经在自己的分支中进行了所有代码更改!

进行合并:

  1. Team -> Merge
  2. 要合并的分支或版本(结束标记):这是您的开发分支标记的名称。
  3. 公共基础版本:这是您的分支的根标记的名称(还记得前面步骤1中的内容吗?)。这应该已经由工具自动填充,但如果没有,请手动添加。
  4. 我喜欢在同步视图中预览合并,以确保没有不应出现的东西进入。根据您的勇气程度,这是我建议的选项。点击完成按钮。
  5. 将出现同步透视图,并在左侧显示目标分支和源分支之间找到的任何差异。
  • 对于任何文件,您都可以在比较工具中打开它以查看更改前的内容并逐个合并更改(完成后请记得保存文件!)或右键单击文件并从可展开列表中选择合并。如果您使用比较工具手动合并,则可以在可展开列表中选择“标记为已合并”以将该文件从待办事项列表中删除。
  • 一旦您决定如何处理文件,它将从列表中删除。目标是处理每个文件。
  • 现在,所有更改都已合并,请切换回Java视角并选择Team -> Synchronize with Repository,同步视角将重新出现。
  • 这次选择Commit将所有更改推送到存储库中。
  • 完成!
  • 希望这有所帮助。 下面提供了帮助文档的内容,指导我获得胜利!

    Eclipse SDK 帮助 - 合并分支


    1
    很棒的答案!真的很有帮助。 - isabelle martz

    7

    确保目标已加载到您的工作区。这是最重要的部分,也是我在尝试几次时错过的部分。

    例如,如果您希望将更改合并到HEAD中,请确保项目与HEAD共享在您的工作区中(而不是您一直在工作的分支)。要执行此操作,请选择项目,然后从上下文菜单中选择Team>Replace With>Another Branch or Version。然后选择要替换的分支。

    从此处开始,选择Team>Merge,然后选择要合并到HEAD中的分支。


    6
    我同意这是反过来的工作方式, 如果需要将YOUR_BRANCH中的更改更新到HEAD,
    1)提交更改到YOUR_BRANCH 2)将本地分支切换到HEAD 3)合并YOUR_BRANCH中所做的更改到HEAD
    因此,您需要在HEAD中,并从YOUR_BRANCH中“获取”更改(而不是将更改从YOUR_BRANCH发送到HEAD)。

    1

    我必须这样做。虽然上面的答案相似,但我发现它们并不符合我需要做的具体要求。

    • 如前所述,请确保您的目标分支(通常是head)已经签出。
    • 然后,突出显示您在分支中更改的文件(或整个项目,无论哪种方式),并选择 Team -> Merge。在弹出的对话框中,选择“要合并的分支或版本(结束标记)”,即您想要从中获取文件的源分支。
    • 在我的情况下,这自动填充了“公共基础版本(开始标记)”,但如果没有,则这将是创建分支时创建的标记。

    当您预览更改时,它们将出现在正常的CVS同步视图中。当您合并文件时,它们将作为更改带入您的本地工作区(从早期开始就是您的目标分支)。此时,您需要将它们检入CVS。


    0
    坦白地说,除非你从分支的时候就一直在预测和计划这个合并,否则没有简单、干净的方法。
    然而,我发现了一个完美运作的技巧,我在博客文章中描述了它

    0

    我也曾遇到这个问题,上面的答案并没有帮助我,直到我勾选了“将合并操作执行到本地工作区”单选按钮。

    不幸的是,在两个文件合并之前,我无法预览我的合并结果。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接