情况:我是 Mercurial 的新手。我最近设置并开始使用模型中的存储库 recommended to me (参见下面 Rudi 的图表)。事情进展顺利,但我遇到了我的第一个实际应用问题。 Mercurial 似乎适合向前/混合 merge ,我想备份。我想通过从供应商分支开始清理我们的默认和稳定分支,重新进行更改并将其作为默认值 checkin 。然后将其 merge 到稳定版中。
V1----V2-------------V3---------V4 Vendor
\ \ \ \
D1----D2---D3--D4-D5-D6-D7-D8---D9 default
\ \ \
S1----------S2---S3 stable
问题:如何从供应商分支作为父分支开始, merge 默认更改并将它们提交到默认分支?
我原以为下面的命令可以做到,但更新改变了工作目录。
hg update -C vendor
hg update default
hg merge
最佳答案
有两种方法可以做到这一点。正确的和权宜的。我会先做正确的:
hg update default
hg --config ui.merge=internal:other merge vendor
这会将您的父目录更新为默认目录,将工作目录更新为默认目录,然后 merge 来自供应商的内容,但这样做是使用内部 merge 工具,该工具总是在有任何差异时选择其他选项,所以在 merge (和提交)之后你会默认看起来像供应商。
偷偷摸摸的方法是:
hg update -C vendor
hg debugsetparent default
hg commit
其中 debugsetparent
是一个 powertool,它执行更新的“父更改”部分而不实际更新工作目录中的文件。
关于version-control - Mercurial:在分支之间 merge ......向后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4071776/