Git repo为Hg subrepo

时间:2014-06-17 16:10:41

标签: git mercurial bitbucket mercurial-subrepos subrepos

请解释一下将git存储库作为子存储库添加到hg存储库的正确方法。

我只需要可能

  1. 克隆hg存储库及其所有子存储库(git和hg);
  2. no 源代码从subrepo包含到父repo,因为subrepo已经拥有自己的(git)repo并且与我分开。
  3. 我尝试了一些事情,现在我真的迷失了方向。我应该创建hg subrepo来保存git subrepo吗?什么修订版指向.hgsubstate(hg或git)?我应该将git代码提交给hg subrepo吗?为什么?

    现在我正在尝试将https://bitbucket.org/espinosa/z025-gwt-maven-alternative-setup嵌入https://bitbucket.org/cube54/mavemples/src。在bitbucket的这个时刻,这个任务看起来已经完成,但是当我克隆父(mavemples)repo时,它会在我的工作目录中创建空的hg subrepo。

    我的.hgsub

    GWT_multiple_apps = GWT_multiple_apps
    
    [subpaths]
    GWT_multiple_apps = git://git@bitbucket.org:espinosa/z025-gwt-maven-alternative-setup.git
    

    我的.hgsubstate

    0000000000000000000000000000000000000000 GWT_multiple_apps
    

    所以当我在bitbucket上点击修订号时,我得到404错误,因为git repo的修订版000000000000不存在。然后,如果我像这样更改.hgsubstate

    d35a3fb7e627b5598fb763f480e3f76932cf4232 GWT_multiple_apps
    

    所以它指向git repo的实际负责人,而不是当我克隆我的回购时,我得到这样的信息:

    requesting all changes
    adding changesets
    adding manifests
    adding file changes
    added 10 changesets with 27 changes to 19 files
    updating to branch default
    cloning subrepo GWT_multiple_apps from https://georgy7@bitbucket.org/cube54/mavemples/git%3A//git%40bitbucket.org%3Aespinosa/z025-gwt-maven-alternative-setup.git
    requesting all changes
    adding changesets
    adding manifests
    adding file changes
    added 10 changesets with 27 changes to 19 files
    abort: unknown revision 'd35a3fb7e627b5598fb763f480e3f76932cf4232'!
    

    而且,我的hg subrepo的hgrc文件包含:

    [paths]
    default = https://georgy7@bitbucket.org/cube54/mavemples/git%3A//git%40bitbucket.org%3Aespinosa/z025-gwt-maven-alternative-setup.git
    

    如果删除subrepo文件夹中的.hg文件夹,然后将git repo克隆到subrepo文件夹,则提交对话框中的TortoiseHg告诉我已删除子库。

    所以我不知道我要做什么。

2 个答案:

答案 0 :(得分:2)

请重新阅读Subrepository Wiki页面中的Git subrepositories并记住.hgsub的外国仓库和操作顺序的格式(可能需要重新创建BB-superrepo)

nested = [git]git://example.com/nested/repo/path.git

答案 1 :(得分:0)

  1. 如果你想制作git subrepo,请更新你的hg。确保您的hg 和git 是最新的并以正确的方式安装。后期版本提供了更易于理解的错误消息。当hg仅提供abort:消息时,您可以使用选项--traceback --debug
    例如hg push --traceback --debug https://someurl
  2. 在bitbucket上使用https网址而不是git@网址。您可以从项目网页复制粘贴它。
  3. .hgsubstate修改指向subrepos'修改
  4. 如果正确写入.hgsub,则git subrepo文件夹中不会显示.hg子文件夹。
  5. 我的新.hgsub

    GWT_multiple_apps = [git]https://bitbucket.org/espinosa/z025-gwt-maven-alternative-setup.git
    

    .hgsubstate

    d35a3fb7e627b5598fb763f480e3f76932cf4232 GWT_multiple_apps