0

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

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

4

1 回答 1

1

尝试克隆主存储库而不同时更新工作目录,这应该允许您拉主存储库而不同时拉取子存储库。如果这不起作用,则跳过此步骤。

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

subpaths 部分允许您重新映射文​​件路径的一部分,并且非常适合当子存储库的完整路径位于 .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\

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

于 2015-01-22T14:58:33.973 回答