84

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

我真的希望这两个项目都成为新存储库中的子目录。

  1. 如何合并这两个项目?
  2. 这是个好主意,还是我应该将它们分开?

看来我应该能够从一个存储库推送到另一个存储库......也许这真的很简单?

4

3 回答 3

69

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

  1. 用于hg clone first_repository克隆其中一个存储库。
  2. 用于hg pull -f other_repository从其他存储库中提取代码。

pull 上的-f(force) 标志是关键——它表示忽略两个存储库不是来自同一来源的事实。

这是此功能的文档

于 2008-08-21T17:23:08.013 回答
7

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

于 2010-09-16T03:49:45.177 回答
3

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

关于您的编辑:从一个存储库推送到另一个存储库。您始终可以使用该transplant命令。虽然,所有这一切实际上都在阻碍你将两者结合起来的愿望,所以你可能会觉得使用我的建议会感到不舒服。然后你可以使用森林扩展或其他东西。

hg transplant -s REPOSITORY lower_rev:high_rev
于 2008-08-20T15:05:01.037 回答