2015-05-14 23 views
0

在git上,有一種簡單的方法可以將客戶端配置爲使用不同的服務器和協議,這非常棒,因爲它允許您在不破壞複雜構建腳本的情況下移動存儲庫。如何輕鬆重定向hg存儲庫?

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

我在尋找類似的功能mercurial ....任何人?

+1

你能展示或至少鏈接到這個git等價物嗎?這可能更容易弄清楚你要求的是什麼。 – Kevin

+0

'hg help paths'? –

+0

也許'hg help config'並尋找「子路徑」。那是你的追求? –

回答

1

Mercurial提供的最接近的替代品是paths配置部分和schemes擴展名,該擴展名啓用schemes配置部分。在這裏,paths允許您定義URL的別名,而schemes允許您定義URL前綴的別名。

例如,如果你添加以下到您的.hgrc或通過命令行配置選項:

[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 
+0

似乎它會工作,我會很快證實這一點。 – sorin