11

目前我的项目由多个存储库组成,例如:

+---项目 (主仓库) 
    +---核心 (子仓库) 
    +--- Web  (子仓库) 
    \---测试 (子仓库)

不幸的是,子存储库之间的代码非常耦合,因此它不能很好地与分支一起使用。

有没有办法将子存储库合并到一个保留历史记录的主存储库中?

4

3 回答 3

8

我将从使用hg convert排除.hgsub和子存储库的文件映射开始。接下来,hg convert在子存储库上使用文件映射中的重命名条目,例如:rename . Core

一旦有了这些新的存储库,您就可以一次hg pull -f将转换后的子存储库中的变更集导入到转换后的主存储库中。您还需要将它们合并到新的主存储库中(它们形成单独的头,空修订版作为最近的共同祖先)。

于 2010-10-07T15:11:37.377 回答
3

第一个猜测:也许通过使用带有文件映射的转换扩展名

另一个尝试:

  • 将所有回购拉到同一个回购中,“默认”分支将有不同的头
  • 然后对于每个头
    • 更新到这个头
    • 将文件(hg move)移动到正确的目录中
  • 将所有“默认”头合并在一起

编辑:添加更多细节,再试一次

于 2010-10-07T14:31:19.553 回答
0

假设您不必转换回购,为什么不简单地将每个回购推送到中央回购?

  1. 确保每个 repo 根目录都有一个以 repo 名称命名的主目录。
  2. 将每个 repo 推送到主 repo 中。
于 2010-10-07T15:46:49.640 回答