在git上,有一種簡單的方法可以將客戶端配置爲使用不同的服務器和協議,這非常棒,因爲它允許您在不破壞複雜構建腳本的情況下移動存儲庫。如何輕鬆重定向hg存儲庫?
git config --global url.https://oldserver.com/aaa/.insteadOf git://newserver.com/bbb/ccc/
我在尋找類似的功能mercurial ....任何人?
在git上,有一種簡單的方法可以將客戶端配置爲使用不同的服務器和協議,這非常棒,因爲它允許您在不破壞複雜構建腳本的情況下移動存儲庫。如何輕鬆重定向hg存儲庫?
git config --global url.https://oldserver.com/aaa/.insteadOf git://newserver.com/bbb/ccc/
我在尋找類似的功能mercurial ....任何人?
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.
如果你有相同的位置下方的多個倉庫,這非常有用。請注意,您也可以結合使用paths
和schemes
,例如
[extensions]
scheme=
[schemes]
ourstuff = ssh://example.com/path/to/reporoot
[paths]
foo = ourstuff://foo
似乎它會工作,我會很快證實這一點。 – sorin
你能展示或至少鏈接到這個git等價物嗎?這可能更容易弄清楚你要求的是什麼。 – Kevin
'hg help paths'? –
也許'hg help config'並尋找「子路徑」。那是你的追求? –