我很高兴使用子模块来跟踪我的项目所依赖的所有库。 问题是我正在使用一个名为 core-plot 的库,它只有一个公共的 Mercurial 存储库。 我可能可以将它镜像到只读 Git 存储库中,但这是我得到的最佳选择吗? 我看到 Mercurial 中有一些模块可以跟踪 Git 中的内容。 有人知道是否存在相反的方式吗?
使用git-hg。
首先,确保您的主存储库下有一个(非 Mercurial)git 子模块。如果您还没有其他子模块,只需为
core-plot
之外的某个库创建一个虚拟子模块,例如:
main-repo $ git submodule add https://repo.url.com/repo.git repo
其次,将
core-plot
库克隆到某个目录中。
main-repo $ git-hg clone https://code.google.com/p/core-plot/ core-plot
将新的存储库添加到子模块列表中。
main-repo $ git submodule add ./core-plot core-plot
main-repo $ git commit -am "added core-plot submodule"
从现在开始,此存储库中的任何克隆都将拉取这两个存储库。 (子模块初始化和更新后)。
到目前为止我发现的一些问题是:
git-hg
的核心情节必须 git-hg pull
。相反的问题 来自 Hg repo 的 git 子模块?也在 StackOverflow 上被问到。最佳答案提到了项目 hg-git 和 git-hg。另一个相关的反向问题是,如何处理转换为 Mercurial 的存储库上的 Git 子模块。
根据我的经验,大多数活跃的非 git 项目在 GitHub 上都有一个最新的 git 镜像。 看起来
core-plot
也有一个:
https://github.com/djw/core-plot
如果您愿意依赖设置该镜像的人,那么这似乎可能是安装子模块的最简单的选择。
我想你可以使用hg-git。
如果我理解正确的话,你用PIP安装它,然后:
.hg/hgrc
在路径下添加另一行,例如:
git = https://github-gitlab.com/your/repo/path
hg push git
(git是因为我在.hg/hgrc
中添加了git但是你可以使用你想要的名称。