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

Posted

技术标签:

【中文标题】如何使用 Eclipse 合并工具将 CVS 分支合并到 HEAD 中?【英文标题】:How do I merge a CVS branch into HEAD using the Eclipse merge tools? 【发布时间】:2010-10-06 12:34:34 【问题描述】:

我目前在使用 Team-->Branch 创建的分支中工作。如何使用 Team-->Merge 将我的更改合并到分支中?

【问题讨论】:

【参考方案1】:

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

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

此时,选择Team > Merge,然后选择要合并到HEAD的分支。

【讨论】:

【参考方案2】:

我也为此苦苦挣扎,在我选中“执行合并到本地工作区”单选按钮之前,上述答案没有帮助。

很遗憾,在两个文件合并之前,我无法预览我的合并。

【讨论】:

【参考方案3】:

坦率地说,没有简单、干净的方法,除非您从分支时就已经预料到并计划了这次合并。

但是,我发现了一个完美运行的 hack,I've described in a blog post。

【讨论】:

【参考方案4】:

我只需要这样做。虽然上面的答案很相似,但我发现它们并没有针对我需要做的事情。

如前所述,确保您的 detination 分支(通常是 head)已签出。 然后,突出显示您知道在您的分支(或整个项目,等等)中已更改的文件,然后选择Team -> Merge。在弹出的对话框中,选择“Branch or version to be merged (end tag)”, 你想要的源分支 文件来自。 在我的例子中,这个自动 填充了“Common base version (start tag)”,但如果不是,那么 这将是创建的标签 何时创建分支。

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

【讨论】:

【参考方案5】:

我也遇到了这个问题。以下是我合并的步骤(主要取自在线 Eclipse 帮助):

    在创建我的开发分支(Team -> Branch)时,我确保为该分支创建了一个根标签,这是 CVS 将用来确定哪些更改是由于该分支和其他努力可能做出的贡献 我在分支上完成了我的开发并将所有更改提交(团队 -> 提交)回存储库 现在我对分支的所有更改都在存储库中,我加载了我想要合并到的目标分支,通常是 HEAD(团队 -> 切换到另一个分支或版本

您现在已准备好开始实际的合并过程。在这里,您将选择应该完成哪些更改以及应该丢弃哪些更改。将此过程视为一个半自动化的开发周期,实际上是一个检查、更改、提交周期。除了手动插入更改之外,您还可以使用比较工具来帮助您。毕竟您已经在您的分支中进行了所有代码更改!

合并:

    团队 -> 合并 要合并的分支或版本(结束标记):这是您的开发分支标记的名称 Common Base Version:这是分支的根标记的名称(还记得前面部分的步骤 1 吗?)。这应该是由工具自动填充的,但如果没有,请自行添加 我喜欢在同步视图中预览合并,这样我可以确保没有任何不应该的东西进入。根据你的勇气,这是我建议的选择。点击完成按钮 Synchronize Perspective 将出现,在您的目标分支和源分支之间发现的任何差异都将显示在左侧的可展开列表中 对于任何文件,您可以在比较工具中打开它以查看它之前的内容并单独合并更改(记住完成后保存文件!)或者您可以右键单击文件并从可展开列表中选择合并。如果您使用比较工具手动合并,您可以在可展开列表中选择“标记为已合并”,将文件从待办事项列表中删除。 一旦您决定如何处理该文件,它将从列表中删除。目标是对每个文件进行操作 现在您的所有更改都已合并,切换回 Java 透视图并选择 Team -> Synchronize with Repository,Synchronize Perspective 将重新出现。 这次选择 Commit 将所有更改推送到存储库中。 鳍!

希望对您有所帮助。 下面提供的就是指引我走向胜利的帮助文档内容供参考!

Eclipse SDK Help - Merging a Branch

【讨论】:

很好的答案!真的很有帮助【参考方案6】:

我同意这是另一种方式, 如果 YOUR_BRANCH 中的更改需要更新为 HEAD,

1) 提交对 YOUR_BRANCH 的更改 2) 将本地分支交换到 HEAD 3) 合并在 YOUR_BRANCH 中所做的 HEAD 女巫更改

因此您需要在 HEAD 中“接受”来自 YOUR_BRANCH 的更改(而不是将更改从 YOUR_BRANCH 发送到 HEAD)。

【讨论】:

以上是关于如何使用 Eclipse 合并工具将 CVS 分支合并到 HEAD 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse 中合并大型项目?

两个 CVS 项目合并为一个 SVN 项目

cvs2svn迁移后的svn合并问题

ECLIPSE下SVN的创建分支/合并/切换使用

android studio中用git集成插件怎么合并分支

CVS 到 SVN 的迁移和分支内的分支