如何在Mercurial中组合两个项目?

时间:2008-08-15 22:29:45

标签: mercurial

我有两个独立的mercurial存储库。在这一点上,它们“成为一体”是有道理的,因为我想同时处理这两个项目。

我真的很喜欢这两个项目,每个项目都是新存储库中的一个子目录。

  1. 如何合并这两个项目?
  2. 这是个好主意,还是我应该 把它们分开?
  3. 似乎我应该能够从一个存储库推送到另一个存储库......也许这真的很直接?

3 个答案:

答案 0 :(得分:69)

我能够以这种方式组合我的两个存储库:

  1. 使用hg clone first_repository克隆其中一个存储库。
  2. 使用hg pull -f other_repository从其他存储库中提取代码。
  3. 拉取的-f(强制)标志是关键 - 它表示忽略这两个存储库不是来自同一来源的事实。

    此功能的the docs

答案 1 :(得分:7)

自1.3(2009-07-01)以来,hg开始拥有subrepo。早期版本不完整且不稳定,但现在它非常实用。

答案 2 :(得分:3)

如果您没有在项目中使用相同的代码,请将它们分开。您可以将每个项目的您的个人存储库设置为仅仅是一个目录。为什么在不必要时混合所有分支,合并和提交注释。

关于您的修改:从一个存储库推送到另一个存储库。您始终可以使用transplant命令。虽然,所有这些都是将你的欲望结合在一起的所有方面,所以你可能会对使用我的建议感到不舒服。然后你可以使用森林扩展或其他东西。

hg transplant -s REPOSITORY lower_rev:high_rev