0

我已经在我的机器上检查了一个项目,我已经添加了 subrepo。在该结帐时工作正常,但是当我在其他位置克隆项目时,它不会克隆子存储库。.hgsub被推到default

目录结构是

./projA/            ## - the main project directory
./projA/lib/projB/  ## - the sub-repo project directory

并且.hgsub

lib/projB = [hg]ssh://hg@bitbucket.org/username/projB

现在,当我这样做时,hg clone ssh://hg@bitbucket.org/username/projA它不会尝试获取子存储库。我错过了什么?

4

2 回答 2

0

从“Mercurial Kick Start Exercises”、“Remote Subrepositories”部分阅读“Subrepos”主题

请注意,我们将存储库克隆到它应该在的位置,因为仅在.hgsub文件中添加条目不会做任何事情,除非存在存储库和给定位置。

于 2013-09-25T12:44:46.987 回答
0

我已经找到了解决方案。问题是.hgsubstate没有生成文件。我已经使用通过hg --debug id -i lib/projB/这种情况获得的哈希手动创建了一个:

.hgsubs

lib/projB = [hg]ssh://hg@bitbucket.org/user/projB/

.hgsubstate

1e07729703d0e9447ae174a732bfd3e1cbdd96f4 lib/projB

有趣的是,在提交后.hgsubstate它确实会自动重新生成。

在该更改克隆按预期工作之后,递归地克隆主仓库和子仓库:

hg clone ssh://hg@bitbucket.org/user/projA

destination directory: projA
requesting all changes
adding changesets
adding manifests
adding file changes
added 13 changesets with 24 changes to 10 files
updating to branch default
cloning subrepo lib/projB from ssh://hg@bitbucket.org/user/projB
requesting all changes
adding changesets
adding manifests
adding file changes
added 653 changesets with 3864 changes to 1899 files 
于 2013-09-27T12:54:28.057 回答