【发布时间】:2010-09-05 23:38:27
【问题描述】:
我有两个独立的 mercurial 存储库。在这一点上,他们“合二为一”是有道理的,因为我想同时处理这两个项目。
我真的希望这两个项目都成为新存储库中的子目录。
- 如何合并这两个项目?
- 这是个好主意,还是我应该 将它们分开?
看来我应该能够从一个存储库推送到另一个存储库...也许这真的很简单?
【问题讨论】:
标签: mercurial
我有两个独立的 mercurial 存储库。在这一点上,他们“合二为一”是有道理的,因为我想同时处理这两个项目。
我真的希望这两个项目都成为新存储库中的子目录。
看来我应该能够从一个存储库推送到另一个存储库...也许这真的很简单?
【问题讨论】:
标签: mercurial
我能够以这种方式组合我的两个存储库:
hg clone first_repository 克隆其中一个存储库。hg pull -f other_repository 从其他存储库中提取代码。pull 上的-f(强制)标志是关键——它表示忽略两个存储库不是来自同一来源的事实。
这里是 the docs 用于此功能。
【讨论】:
hg merge 才能最终让一切正常运行
hg glog,您会看到您有两行不相关的变更集。每行中的第一个变更集没有父项,但这对 Mercurial 来说不是问题。拉动后,您需要为 hg mv 将所有内容放入适当的子文件夹的每一行创建一个新的变更集,然后合并这些行,一切就绪。
hg 从 1.3 (2009-07-01) 开始拥有subrepo。早期版本不完整且不稳定,但现在非常可用。
【讨论】:
如果您没有在各个项目中使用相同的代码,请将它们分开。您可以将每个项目的您的个人存储库设置为仅一个目录。为什么不需要混合所有分支、合并和提交 cmets。
关于您的编辑:从一个存储库推送到另一个存储库。您始终可以使用transplant 命令。虽然,所有这一切都只是让您渴望将两者结合起来,因此您可能会觉得使用我的建议会感到不舒服。然后你可以使用森林扩展或其他东西。
hg transplant -s REPOSITORY lower_rev:high_rev
【讨论】: