我有一个非常古老的项目,它直接包含来自另一个项目的源代码,而不是将其链接为库。在糟糕的日子里,当我将所有内容都保存在 CVS 中时,我在供应商分支上拥有外部代码并定期导入。现在我的项目在 git 中,将外部项目包含为子模块会更有意义。但是,有一个问题:外部项目已迁移到 Mercurial。我找到了 git-hg 和 hg-git 项目,但我不确定其中任何一个是否正确处理子模块。
有没有办法创建一个指向 Hg 存储库而不是 git 存储库的 git 子模块?
我有一个非常古老的项目,它直接包含来自另一个项目的源代码,而不是将其链接为库。在糟糕的日子里,当我将所有内容都保存在 CVS 中时,我在供应商分支上拥有外部代码并定期导入。现在我的项目在 git 中,将外部项目包含为子模块会更有意义。但是,有一个问题:外部项目已迁移到 Mercurial。我找到了 git-hg 和 hg-git 项目,但我不确定其中任何一个是否正确处理子模块。
有没有办法创建一个指向 Hg 存储库而不是 git 存储库的 git 子模块?
由于hg-git确实提到尚不支持子模块,因此只剩下一个手动选项:
hg gpush
从您的项目中运行。例如:
$ cd hg-git # (an Hg repository)
$ hg gremote add origin git@github.com/schacon/hg-git.git
$ hg gpush
该 Git 存储库将代表您的子模块,但如果您修改并推送该子模块,您仍然必须从该 Git 存储库拉到实际的 Hg 存储库。
其他伟大的 git-hg 命令列在这个“罗塞塔石碑”中。