version-control - Mercurial:在分支之间 merge ......向后?

标签 version-control mercurial branch branching-and-merging

情况:我是 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/

相关文章:

mysql - 小组工作+依赖数据库的CMS+版本控制

git - 我应该将已删除的文件添加到舞台区域吗?

git - 使用 Git 和 IntelliJ IDEA 将一个文件的更改保存在两个不同的更改列表中

android - 如何使用 Eclipse 和 Mercurial 正确克隆 Android 项目

python - 使用预提交 Hook 运行 Django 测试

git diff 返回不正确

api - 找到合并分支的tfs路径

visual-studio - TFS 分支与合并

mercurial - 如何看出善变的差异

git - 如何管理两个链接的 GitHub 存储库