我有一个非常古老的项目,它直接包含另一个项目的源代码,而不是将其作为库链接。在糟糕的日子里,当我将所有内容保存在 CVS 中时,我将外部代码放在供应商分支上并定期导入。现在我的项目在 git 中,将外部项目作为子模块包含在内会更有意义。但是,有一个问题:外部项目已经迁移到 Mercurial。我找到了 git-hg 和 hg-git 项目,但我不确定这两个项目是否能正确处理子模块。
有没有办法创建一个指向 Hg 存储库而不是 git 存储库的 git 子模块?
最佳答案
自 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 存储库将代表您的子模块,但如果您修改并推送该子模块,您仍然需要从该 Git 存储库 pull 到实际的 Hg 存储库。
“rosetta stone”中列出了其他很棒的 git-hg 命令。
关于来自 Hg repo 的 git 子模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1072602/