我有一个shell存储库OriginalWithSubrepo,其子存储库Sub包含一堆实际文件。
当我像这样克隆OriginalWithSubrepo时
hg clone --pull --noupdate "C:\TestRepo\OriginalWithSubrepo" "C:\TestRepo\OriginalWithSubrepo-clone"
这样创建的克隆只包含一些mercurial内务文件,原始Sub \ .hg目录中没有实际数据。我不知道这些文件是什么意思,但显然它们足以重新创建repo,因为当我更新clone中的工作目录时,整个内容都会被所有文件填满,包括Sub \ .hg目录中的文件。但是,如果我克隆,然后重命名原始,然后尝试更新克隆,它没有工作说没有找到OriginalWithSubrepo,这意味着它都基于原始链接。
当我使用update运行clone时,或者在没有subrepos的情况下克隆存储库时,不会出现此问题。
当我克隆到网络共享时,它的行为相同,这是我真正希望它工作的地方。
那么如何使用subrepos(没有同时更新)完全独立克隆repo?
Windows XP,hg版本3.4.1
答案 0 :(得分:0)
将第一个子报表添加到父仓库时,.hgsub
会添加到父仓库中。 subrepo只会变为提交.hgsub
的变更集的子参数。
执行hg clone --noupdate --pull parent parent-clone
时,父克隆尚未处于任何变更集中,因此尚未创建创建子项目的变更集
那么如何使用subrepos(没有同时更新)完全独立克隆repo?
我认为你不能这样做。
但是这可能会实现你想要做的事情(我在这里阅读这些内容,但我猜测在共享上有回购,但没有任何文件可见):
\\fileserver\repos\OriginalWithSub\
以及\\fileserver\repos\Sub\
\\fileserver\repos\Sub\
并提交。两个存储库现在都存在于网络共享中,除了内部.hg之外没有任何文件可见,您可以从另一台计算机克隆\\fileserver\repos\OriginalWithSub\
(带更新)并获取OriginalWithSub和Sub的完整历史记录。 / p>