我很高兴使用子模块来跟踪我的项目所依赖的所有库。 问题是我正在使用一个名为core-plot的库,它只有一个公共的mercurial存储库。 我可以在一个只读的Git存储库中镜像它,但这是我得到的最佳选择吗? 我曾经看到Mercurial中有模块来跟踪Git中的内容。有人知道是否存在相反的方式?
答案 0 :(得分:25)
使用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
将新的repo添加到子模块列表中。
main-repo $ git submodule add ./core-plot core-plot
main-repo $ git commit -am "added core-plot submodule"
从现在开始,来自此repo的任何克隆都将拉出两个存储库。 (在子模块初始化和更新之后)。
到目前为止我发现的一些问题是:
git-hg
的核心图必须为git-hg pull
。在StackOverflow上也会询问相反的问题git submodule from Hg repo?。最好的答案提到项目hg-git和git-hg。另一个相关的相反问题是How to deal with Git submodules on a repo that is converted to Mercurial。
答案 1 :(得分:15)
根据我的经验,大多数活跃的非git项目都有一个最新的git镜像在GitHub上浮动。看起来core-plot
也有一个:
https://github.com/djw/core-plot
如果您愿意依赖任何设置该镜像的人,看起来这可能是获得子模块的最简单方法。