2013-08-24 49 views
5

我在branch-a上工作时发现一个不相关的bug,应该在default分支中修复。因此,我想对default进行一些更改,然后将default合并到当前分支中,并继续工作。hg:对另一个分支提交一些更改

据我所知,Mercurial不允许直接提交到另一个分支,所以我将不得不首先切换到默认分支。问题是,我不能简单地签出默认分支,因为其他更改会导致冲突。我能想到的一个工作流程是搁置,检出缺省值,仅取消与修复相关的文件,提交,检出分支-a,合并默认值,最后取消搁置其余文件。有没有更简单的方法来实现这一点?

回答

0
  • 提交文件的唯一子集,与branch-a改变(使用记录扩展的额外功率,如果bug修正的和分支一的变化,一些文件(县发生) - 提交的文件只需要大块)为变更一个

如果你还没有MQ扩展:

  • 提交更改的其余部分为branch-a如变更B(A儿童)
  • 再次基于B(衍合带分机ension)变更为default分支与奥德--keep选项具有B-在原来的位置也

如果你有MQ扩展

  • 创建工作-dir的新补丁修改
  • 取消应用MQ-补丁
  • 更新到default
  • 应用补丁
  • 测试,测试...
  • 完成补丁(转换为永久变更)
  • 移植只有branch-a分支
+0

感谢这个变更!我只是模糊地意识到重建,但现在我明白了它的重点。 – alekop

+0

很高兴知道这样做的rebase和mq-patch方法。然而,搁置 - >开关分支 - > unshelve似乎对我来说更容易。不管怎么说,还是要谢谢你。 –

相关问题