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

Posted

技术标签:

【中文标题】如何在 Eclipse 中合并大型项目?【英文标题】:How to merge large projects in Eclipse? 【发布时间】:2011-01-05 13:01:25 【问题描述】:

我已经使用分支很长一段时间了,但我总是使用命令行工具来进行实际的合并。但是,现在我只需要从 Eclipse 中执行此操作。多年来,分支和合并是 SCM 系统中广泛使用的功能,我希望 Eclipse 能够很好地支持它,但事实似乎并非如此。

目前,我正在开发一种产品,该产品由需要一起分支的多个项目组成。当合并从主干到分支的更改时,通常我会从分支结帐的根目录执行以下操作:(我在这里使用 Subversion 作为示例,但问题也应该适用于其他 SCM 工具。)

svn update
svn merge ^/trunk
svn commit -m "Merged from trunk"

也许在中间解决一些冲突,但这就是我所要做的。但是在 Eclipse 中我只能在项目级别进行合并,有以下缺点:

我无法合并根文件夹的内容,只能合并单个项目的内容。顺便说一句,更新也是如此。 如果在主干上修改了项目结构(例如,添加了新项目),则这些更改根本不会合并。再次更新。 合并不是原子的。如果在合并期间在主干上发生提交,我的工作副本中的事情可能会变得一团糟。 (这可以解决,但不方便。)

这些限制看起来很简单,因为 Eclipse 不知道根文件夹,因为它会从 SVN 签出单个项目。

我的问题是:我是否遗漏了什么,或者真的不可能以类似于我从命令行执行的方式使用 Eclipse?如果这确实是不可能的,那么其他人如何应对呢?每个人都使用命令行或 TortoiseSVN 等外部工具吗?

【问题讨论】:

你在 Eclipse 中使用的是哪个 SVN 插件? 我目前正在使用带有 SVNKit 1.3 的 Subversive,但我认为这些问题与插件或 SVN 本身无关。或者是否有更好的支持,比如 Mercurial 或 CVS? 【参考方案1】:

你的观察是正确的。 Eclipse 仅在项目级别管理“团队”操作,如 svn。所以,你不会错过任何东西 ;-)

是的,您必须使用外部工具来合并整个分支。乌龟做得很好。

【讨论】:

【参考方案2】:

可以使用 Eclipse 插件CollabNet Subversion Merge Client完成多项目合并。您可以在 com.collabnet.subversion.merge 找到它。

在首选项中启用它:

Eclipse Preferences > Team > SVN > Diff/Merge 

还有:Merge Implementation: CollabNet Desktop

【讨论】:

【参考方案3】:

你提到的确实是一个限制。我通常检查整个文件夹结构,然后将各个项目导入 Eclipse。当我需要对整个存储库进行操作时,我会使用命令行或 Tortoise SVN 在 eclipse 之外进行操作。

这也是一个痛苦,当有人添加一个新插件时(我正在开发一个 Eclipse RCP 应用程序),我需要手动将它添加到项目列表中,因为 Eclipse 不知道所有项目的根目录.

【讨论】:

【参考方案4】:

在 Eclipse 中,SVN 分支和合并非常适合单个项目,我在处理已分支并需要合并的单个项目时没有任何问题。

但是,如果多个项目需要单个单元处理,那么这在eclipse中似乎无法直接处理,每个项目都需要单独处理。

【讨论】:

以上是关于如何在 Eclipse 中合并大型项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse 中从我的 Android 项目中删除依赖项

如何在git中将大型合并请求拆分为多个部分

如何在大型矩阵中合并具有相似名称的列

eclipse git如何切换分支,合并分支,解决冲突等

eclipse git如何切换分支,合并分支,解决冲突等

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