我们的项目中有几个远程子存储库,它们的地址最近已从http://host/path
移到http://other_host/path
。例如,如何才能回到上个月的修订版本,Mercurial认为可以在http://host/path
上找到该子仓库?
$ hg -v up -d 1/20/2012
Found revision 1091 from Fri Jan 20 10:22:29 2012 -0600
resolving manifests
abort: error: No connection could be made because the target machine actively refused it
$ hg --debug up -d 1/20/2012
Found revision 1091 from Fri Jan 20 10:22:29 2012 -0600
resolving manifests
<snip...>
subrepo merge 0f0f2b807811+ 0908d5249a6f 0f0f2b807811
subrepo external/our_remote_repo: both sides changed, merge with https://old_host/external/our_remote_repo:c66cf52ce1f240193190cec392d889618c09f22b:hg
using https://old_host/external/our_remote_repo
sending capabilities command
using auth.old_host.* for authentication
abort: error: No connection could be made because the target machine actively refused it
最佳答案
根据documentation的说明,您可以在hgrc中将[subpaths]用于remap such urls。
归结为以以下形式定义子存储库源位置重写规则:
<pattern> = <replacement>
其中pattern是与源匹配的正则表达式,而replace是用于重写它的替换字符串。组可以在模式上匹配,并在替换中引用。例如:
http://server/(.*)-hg/ = http://hg.server/\1/
改写
http://server/foo-hg/ into http://hg.server/foo/.
关于mercurial - 使用已移动的子存储库更新到旧的Mercurial修订版,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9365174/