如何轻松重定向hg存储库?

时间:2015-05-14 18:27:03

标签: mercurial

在git上有一种简单的方法可以配置客户端使用不同的服务器和协议,这很棒,因为它允许您移动存储库而不会破坏复杂的构建脚本。

git config --global url.https://oldserver.com/aaa/.insteadOf git://newserver.com/bbb/ccc/

我正在寻找与mercurial相似的功能....任何人?

1 个答案:

答案 0 :(得分:1)

Mercurial提供的最接近的替代方案是paths配置部分和schemes扩展,它启用schemes配置部分。在这里,paths允许您为URL定义别名,而schemes允许您为URL前缀定义别名。

例如,如果将以下内容添加到.hgrc或在命令行上传递config选项:

[paths]
foo = ssh://example.com/path/to/real/foo

然后你可以这样做:

hg clone foo
hg push foo
hg pull foo
etc.

同样,您可以启用方案“扩展”(它实际上是内置的,您不需要安装任何东西,只需将其打开)并使用它来定义前缀:

[extensions]
scheme=
[schemes]
ourstuff = ssh://example.com/path/to/reporoot

然后你可以这样做:

hg clone ourstuff://foo
hg push ourstuff://foo
hg pull ourstuff://foo
etc.

如果您在同一位置下有多个存储库,这将非常有用。请注意,您还可以使用pathsschemes组合,例如

[extensions]
scheme=
[schemes]
ourstuff = ssh://example.com/path/to/reporoot
[paths]
foo = ourstuff://foo