如何查看来自不同存储库的mercurial修订版?

时间:2015-11-17 19:36:45

标签: mercurial multiple-repositories

在git中,如果您有两个远程存储库设置为defaultother,并且它们都包含cool-feature分支,但它们不同步,您可能会遇到以下情况:< / p>

* <--- HEAD, cool-feature, default/cool-feature
|
|
o another commit
|
|
o commit for awesome
|
|
o <--- other/cool-feature
|
.
.
.

我可以通过git checkout other/cool-featuregit checkout default/cool-feature来回跳转。

如何在Mercurial中执行等效操作?它甚至可能吗?

1 个答案:

答案 0 :(得分:1)

如果您使用书签模拟Git分支,并且您从书签分歧的两个存储库中提取,那么其中一个将被标记为name@repo,其中name是书签的名称并且repo[paths]的{​​{1}}部分中的标识符,或者是没有此类条目时的唯一标识符。

但是,如果书签没有分歧,但是一个修订版是另一个修订版的祖先,那么您只能获得最新版本。您仍然可以通过以下方式从远程存储库单独获取书签:

.hg/hgrc

然后:

hg pull -B name repo1
hg update name

或者,您也可以使用hg pull -B name repo2 hg update name 确定远程书签对应的节点:

hg id

或:

hg update -r $(hg id -i -r name repo1)

请注意,如果您打算经常来回切换,可能需要使用本地标记或其他书签来标记修订版,因为访问远程存储库可能会有点慢。

如果这是您经常需要的,您可能需要考虑remotenames extension。警告:此扩展程序会更改书签的正常行为(实际上使其更像Git)。