我目前在我的项目中使用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