这里是:
$ cat .gitmodules
[submodule "utils/external/firepython"]
path = utils/external/firepython
url = git://github.com/darwin/firepython.git
[submodule "utils/external/textile"]
path = utils/external/textile
url = git://github.com/jsamsa/python-textile.git
虽然这仍然是一个Git回购,我需要运行git submodule init
,然后发生一些魔术。由于我现在将回购转换为Mercurial(使用hgext.git
扩展名),我不知道该怎么做。是否有一个等效的过程(我需要在我的Mercurial仓库中使用那两个Git模块)?
答案 0 :(得分:12)
Mercurial支持不同类型的subrepositories:Mercurial,Subversion和Git。因此,您可以使用
创建.hgsub
文件
utils/external/firepython = [git]git://github.com/darwin/firepython.git
utils/external/textile = [git]git://github.com/jsamsa/python-textile.git
这将告知Mercurial在克隆Mercurial存储库时克隆您的Git存储库。您需要第一次自己制作Git克隆,或者从磁盘上的其他位置复制它们:
$ git clone git://github.com/darwin/firepython.git utils/external/firepython
$ git clone git://github.com/jsamsa/python-textile.git utils/external/textile
$ hg add .hgsub
$ hg commit -m 'Added Git subrepositories'
然后您将注意到Mercurial已将.hgsubstate
文件添加到您的存储库,其中存储有关Git子存储库的信息。需要此文件,以便Mercurial在您创建新的Mercurial克隆时知道要从子存储库中检出的修订版。
我的一位同事写了一篇你可能觉得有用的subrepository guide。