我们的项目中有几个远程子目录,其地址最近已从http://host/path
移至http://other_host/path
。怎么可以回到上个月的修订版,Mercurial认为可以在http://host/path
找到subrepo?
$ 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
答案 0 :(得分:7)
根据documentation,你可以在hgrc中使用[subpaths]到remap such urls。
这归结为以
的形式定义子存储库源位置重写规则<pattern> = <replacement>
其中pattern是与源匹配的正则表达式,替换是用于重写它的替换字符串。组可以在模式中匹配并在替换中引用。例如:
http://server/(.*)-hg/ = http://hg.server/\1/
重写
http://server/foo-hg/ into http://hg.server/foo/.
答案 1 :(得分:-5)
你不能这样做。 Mercurial在州内返回,它正好在这个版本中(subrepo的URL,subrepo中的修订版)