如何从不同的存储库中检出一个可变的修订



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

* <--- 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中实现同等功能?这可能吗?

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

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

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)

或:

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

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

如果这是您经常需要的东西,您可能需要考虑remotenames扩展。警告:这个扩展在很大程度上改变了书签的正常行为(事实上,它更像Git)。

相关内容

  • 没有找到相关文章

最新更新