我有两个单独的Mercury存储库。在这一点上,它们“成为一体”是有道理的,因为我想同时从事两个项目。
我真的希望两个项目都成为新存储库中的子目录。
- 如何合并两个项目?
- 这是个好主意,还是应该将它们分开?
看来我应该能够从一个存储库推送到另一个存储库……也许这真的很简单?
Answers:
我能够以这种方式合并我的两个存储库:
hg clone first_repository
该库的克隆之一。hg pull -f other_repository
从其他存储库中提取代码。-f
拉上的(force)标志是关键-它表示忽略两个存储库不是来自同一来源的事实。
这是此功能的文档。
hg merge
以使一切正常运行
hg glog
之后,您会发现您有两行不相关的变更集。每行的第一个变更集没有父级,但这对Mercurial来说不是问题。拉动后,您需要为每行进行一个新的更改集hg mv
,然后将所有内容都放入相应的子文件夹中,然后合并这些行,并进行了设置。
从1.3(2009-07-01)开始,hg开始具有subrepo。早期版本不完整且不稳定,但现在可以使用了。
如果您在整个项目中使用的不是相同的代码,请将它们分开。你可以设置你的每一个这些项目的个人资源库只是一个分开的目录。为什么不必混合所有分支,合并和提交注释。
关于您的编辑:从一个存储库推送到另一个存储库。您可以随时使用transplant
命令。虽然,所有这些实际上都在阻碍您将两者结合的愿望,所以使用我的建议可能会让您感到不舒服。然后,您可以使用森林扩展名或其他名称。
hg transplant -s REPOSITORY lower_rev:high_rev