我如何从不同的存储库中检出 mercurial 修订版?
How do I check out a mercurial revision from a different repository?
在 git 中,如果您将两个远程存储库设置为 default
和 other
并且它们都包含 cool-feature
分支但是它们不同步,您可能有这样的东西:
* <--- 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 中做同样的事情?有可能吗?
如果您使用书签来模拟 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 extension。警告:这个扩展改变了书签的正常行为(事实上,使它更像 Git)。
在 git 中,如果您将两个远程存储库设置为 default
和 other
并且它们都包含 cool-feature
分支但是它们不同步,您可能有这样的东西:
* <--- 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 中做同样的事情?有可能吗?
如果您使用书签来模拟 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 extension。警告:这个扩展改变了书签的正常行为(事实上,使它更像 Git)。