来自Hg repo的git子模块?

时间:2009-07-02 05:07:16

标签: git mercurial git-submodules

我有一个非常古老的项目,它直接包含来自另一个项目的源代码,而不是将其作为库链接。回到糟糕的日子,当我将所有内容保存在CVS中时,我在供应商分支上有外部代码并定期导入。既然我的项目是在git中,那么将外部项目作为子模块包含起来会更有意义。但是,存在一个问题:外部项目已迁移到Mercurial。我找到了git-hg和hg-git项目,但我不确定是否有一个正确处理子模块。

有没有办法创建一个指向Hg repo而不是git repo的git子模块?

1 个答案:

答案 0 :(得分:12)

由于hg-git确实提到尚未支持子模块,因此只留下手动选项:

  • 在您具有推送权限的地方设置Git存储库,
  • 将其添加为Git遥控器然后
  • 从项目中运行hg gpush

例如:

$ cd hg-git # (an Hg repository)
$ hg gremote add origin git@github.com/schacon/hg-git.git
$ hg gpush

Git repo将代表你的子模块,但是如果你修改并推送那个子模块,你仍然需要从那个Git repo拉到实际的Hg repo。

其他很棒的git-hg命令列在“rosetta stone”中。