【发布时间】:2012-08-16 07:22:47
【问题描述】:
我试图弄清楚如何在不从源中提取的情况下克隆带有子存储库的存储库。恐怕,虽然我已经阅读了教程和示例,但我对 Mercurial 的了解是初步的。
现在,.hgsub 结构是一个类型列表:
subrepo = ssh://address/subrepo
阅读How to make local clone without pulling subrepos again?帖子的答案我尝试将其更改为列表
subrepo = subrepo
[subpaths]
subrepo = ssh://address/subrepo
hg clone c:\path\repo
hg update -R rev
无论我做什么,我总是最终从源(ssh)而不是本地子存储库内容中提取。
注意:当我尝试更新我的原始存储库时,我收到一个关于重复路径的错误,只有在我恢复我在 .hgsub 文件中的更改时才会消失。
我还尝试了什么:
一个想法:制作存储库的副本,例如复制和粘贴,并使用硬链接。这是个好主意吗?当我更改副本时,我最终不会对原始文件进行更改吗?
另一个想法:使用硬链接克隆 .hg 文件夹,然后简单地复制其余内容?
有人有解决这个问题的办法吗?
【问题讨论】:
-
您链接到的问题将
[subpaths]信息放在 .hgrc 中,而不是 .hgsub 中 - 您的问题暗示您更改了 .hgrc -
我更改了 hgsub,我链接的问题也说了同样的话,除非我读错了?
-
仍然,我附加的链接,显示这必须在 hgsub 中完成的文档链接: Mercurial 2.0 的一种解决方法是使用 .hgsub 中的 [subpaths] 将“理想”路径映射到一些托管服务提供商使用的平面命名空间。例如,托管在bitbucket.org/kiilerix/subrepodemo 的项目可能有这样的 .hgsub:sub = sub [subpaths] bitbucket\.org/kiilerix/subrepodemo/sub = bitbucket.org/kiilerix/subrepodemo-sub