在git上有一种简单的方法可以配置客户端使用不同的服务器和协议,这很棒,因为它允许您移动存储库而不会破坏复杂的构建脚本。
git config --global url.https://oldserver.com/aaa/.insteadOf git://newserver.com/bbb/ccc/
我正在寻找与mercurial相似的功能....任何人?
答案 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.
如果您在同一位置下有多个存储库,这将非常有用。请注意,您还可以使用paths
和schemes
组合,例如
[extensions]
scheme=
[schemes]
ourstuff = ssh://example.com/path/to/reporoot
[paths]
foo = ourstuff://foo