3

情况:我是 Mercurial 的新手。我最近设置并开始使用推荐给我的模型中的存储库(请参见下面的 Rudi 图表)。事情进展顺利,但我遇到了第一个实际应用问题。Mercurial 似乎面向前向/混合合并,我想备份。我想从供应商分支开始清理我们的默认和稳定分支,重新进行更改并将其作为默认值签入。然后将其合并到稳定中。

V1----V2-------------V3---------V4     Vendor
 \     \              \          \
  D1----D2---D3--D4-D5-D6-D7-D8---D9   default
                  \           \    \
                   S1----------S2---S3 stable

问题:如何以供应商分支作为父分支,合并默认更改并将它们提交到默认分支?

我认为以下会做到这一点,但更新会改变工作目录。

hg update -C vendor
hg update default
hg merge
4

2 回答 2

4

有两种方法可以做到这一点。正确的一个和权宜的一个。我会先做正确的:

hg update default
hg --config ui.merge=internal:other merge vendor

这会将您的父级更新为默认值,并将工作目录更新为默认值,然后合并来自供应商的内容,但是使用内部合并工具来执行此操作,该工具总是在有任何差异时选择另一个选项,因此您将拥有默认看起来像供应商之后合并(并提交)。

偷偷摸摸的方法是:

hg update -C vendor
hg debugsetparent default
hg commit

哪里debugsetparent有一个 powertool 可以在不实际更新工作目录中的文件的情况下执行更新的“父更改”部分。

于 2010-11-01T20:12:51.053 回答
0

虽然它缺乏这个问题及其答案提供的上下文,但我在 Mercurial 的 Wiki 上找到了官方答案

于 2010-11-01T21:30:21.473 回答