【发布时间】:2014-07-25 03:37:11
【问题描述】:
我目前在我的项目中使用 Mercurial 进行子版本控制。现在我想在一个新的分支 2.7 上工作,但我对使用分支 2.6 感到困惑,我开发了新功能,该功能在 2.7 上,但我在 2.6 上构建。现在我想将此功能正确移动到分支 2.7,但我不知道如何正确移动它。有什么办法吗?
【问题讨论】:
我目前在我的项目中使用 Mercurial 进行子版本控制。现在我想在一个新的分支 2.7 上工作,但我对使用分支 2.6 感到困惑,我开发了新功能,该功能在 2.7 上,但我在 2.6 上构建。现在我想将此功能正确移动到分支 2.7,但我不知道如何正确移动它。有什么办法吗?
【问题讨论】:
我建议使用 hg graft,它将更改从一个分支复制到另一个分支,并且与 hg rebase 不同,它不会具有破坏性(如果您是第一次这样做并且可能会犯错误或者如果您需要该功能,则相关出现在两个分支上)。
要将更改复制到分支dest-branch,请执行以下操作。首先更新到要将更改复制到的分支:
hg update dest-branch
然后,使用graft从原始分支复制你想要的修订,例如:
hg graft -r start..end
其中start 是您要从源分支移植的第一个修订版,end 是最后一个修订版。
如果不能干净地合并它们,您可能会遇到冲突,您必须解决它们(就像在合并中所做的那样),然后使用 hg graft --continue 移植剩余的修订。
【讨论】:
神奇的词是 RTFM - hg help rebase
【讨论】: