在git中,如果您有两个远程存储库设置为default
和other
,并且它们都包含cool-feature
分支,但它们不同步,您可能会遇到以下情况:< / p>
* <--- HEAD, cool-feature, default/cool-feature
|
|
o another commit
|
|
o commit for awesome
|
|
o <--- other/cool-feature
|
.
.
.
我可以通过git checkout other/cool-feature
和git checkout default/cool-feature
来回跳转。
如何在Mercurial中执行等效操作?它甚至可能吗?
答案 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)。