1

在 git 中,如果您将两个远程存储库设置为defaultandother并且它们都包含cool-feature分支但它们不同步,您可能会遇到这样的情况:

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

git checkout other/cool-feature我可以通过and来回跳跃git checkout default/cool-feature

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

4

1 回答 1

1

如果您使用书签来模拟 Git 分支,并且您从两个存储库中提取书签,那么其中一个将被name@repo标记为这样的条目。namerepo[paths].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)

或者:

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

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

如果这是您经常需要的东西,您可能需要考虑remotenames 扩展。警告:这个扩展相当多地改变了书签的正常行为(实际上使它更像 Git)。

于 2015-11-17T20:56:02.603 回答