Hg几乎致力于错误的分支

Dav*_*iov 7 version-control mercurial branch dvcs

我有一个未提交的变更集.我注意到我目前在错误的分支上,所以在我提交之前,我想切换到我想要的分支,然后提交.

在汞中实现这有多难?

Mar*_*ler 5

如果当前父修订版和目标修订版之间存在线性路径,则可以发出

hg update right-branch
Run Code Online (Sandbox Code Playgroud)

和Mercurial会将工作副本中的更改合并到目标修订版中.

这是使用完整的合并工具机器完成的,因此重新命名的内容会被考虑在内,如果发生冲突,您将获得一个三向合并程序.基于搁置和差异的方法缺乏这一点,并要求您使用.rej文件手动修复冲突.您甚至可以查看当前的合并状态hg resolve --list并重新合并所选文件,因为Mercurial会为您进行必要的备份.

如果没有线性路径,您将收到此警告:

abort: crosses branches (merge branches or use --clean to discard changes)
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过首先更新回共同的祖先,然后再次向前更新来获得所需的内容.我不是百分之百确定我们为什么发出这个警告,但如果你很好奇,搜索邮件列表档案应该会给你答案.