克隆到Mercurial Hg

时间:2015-01-22 14:18:50

标签: mercurial mercurial-subrepos

我已经开始将存储库克隆到我的本地计算机。存储库包含2个子存储库。首先,这两个子存储库将其他存储库引用到相同的mercurial(.hgsub文件包含路径)。稍后(正如我可以看到文件修订历史记录)另一个程序员修改了.hgsub文件,其中另一条路径指向同一个命名存储库,该存储库托管到另一台服务器上,我无权访问。后来他将这些子存储库引回到我们服务器上的主存储库。所以最新的存储库只包含来自我们服务器的代码。

所以我开始克隆存储库。 Mercurial显然适用于从开始进行的所有修改。当涉及到修订子库存路径被更改时,它会要求授权到其他服务器Mercurial。我无法访问该服务器。因此,克隆过程在这里停顿,状态为Failed。我已经分别克隆了这两个子库,并将它们复制粘贴到我本地存储库的适当位置。打开主要解决方案并尝试构建它,但由于某些项目对libs的引用已过时而导致错误。我删除了它们并再次引用。尝试再次构建,但是一些libs不包含某些方法。由于克隆不成功,我无法将它们更新到最新版本。我不知所措。有没有人遇到过类似的情况?

1 个答案:

答案 0 :(得分:1)

尝试克隆主仓库而不同时更新工作目录,这样您就可以在不拉动子目录的情况下拉出主仓库。如果这不起作用,那么就跳过这一步。

然后尝试将[subpaths]部分添加到repo的hgrc文件或mercurial.ini文件中(在C:\ users \ username \文件夹下)。

子路径部分允许您重新映射部分文件路径,并且非常适用于子队列的完整路径位于.hgsub但回购已移动的情况。

每行的格式为

original path = new path

它肯定支持常规本地文件路径,UNC路径,http(s)和ssh。

以下是一些示例子路径行:

[subpaths]
https://code.server.com/originalrepo = ssh://other.server.com/movedrepo
https://code.server.com/originalrepo = https://other.server.com/movedrepo
C:\\Projects\\originalrepo\\ = \\server\projects\movedrepo\

请注意,=左侧的路径必须正确转义反斜杠,右侧的路径不会。