0

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

我只需要有可能

  1. 克隆 hg 存储库及其所有子存储库(git 和 hg);
  2. 包含从 subrepo 到父 repo 的源代码,因为 subrepo 已经拥有自己的 (git) repo 并且与我分开开发。

我已经尝试了一些事情,现在我真的迷失了方向。我应该创建 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 上,此任务看起来已完成,但是当我克隆父(mavemple)存储库时,它会在我的工作目录中创建空的 hg 子存储库。

我的.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 的实际负责人,而不是当我克隆我的 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

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

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

4

2 回答 2

2

请从 Subrepository Wiki-page重新阅读Git 子存储库.hgsub,并记住外国 repo 的格式和操作顺序(可能必须重新创建 BB-superrepo)

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

于 2014-06-17T18:08:38.233 回答
0
  1. 如果你想制作 git subrepo,请更新你的 hg. 确保您的 hg和 git是最新的并以正确的方式安装。较新的版本提供了更易于理解的错误消息。当 hgabort:只给出消息时,您可以使用 options --traceback --debug
    例如hg push --traceback --debug https://someurl
  2. 在 bitbucket 上使用httpsURL 而不是git@一个。您可以从项目网页复制粘贴它。
  3. .hgsubstate修订直接指向子回购的修订。
  4. 如果.hgsub编写正确,您的 git subrepo 文件夹中将不会.hg出现子文件夹。

我的新.hgsub

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

.hgsubstate

d35a3fb7e627b5598fb763f480e3f76932cf4232 GWT_multiple_apps
于 2014-06-18T13:10:06.887 回答