假设我有一个名为分支'B1',我正在进行功能开发.我在演示之前处于一个很好的停止点,虽然没有使用该功能,所以我:
hg up default
hg merge B1
hg ci -m "merged in feature drop"
hg push
Run Code Online (Sandbox Code Playgroud)
现在我继续工作了半个小时左右,然后去承诺只是意识到我忘了更新回B1并且我当前的工作目录已经开启了default- 呃.从理论上讲,我应该只能将我的工作目录标记为B1的提示 - 是否有一种简单的方法可以做到这一点?
我当然可以提交,更新回B1,然后合并我的更改,但是默认情况下有一个不稳定的变更集,这对我来说经常发生,我想要一个真正的解决方案.
mpm*_*mpm 30
两种方式.首先,显而易见的方式:
hg diff > foo
hg up -C b1
hg import --no-commit foo
rm foo
Run Code Online (Sandbox Code Playgroud)
第二,神奇的方式:
hg up -r 'ancestor(., b1)' # take working dir back to the fork point
hg up b1 # take it forward to the branch head
Run Code Online (Sandbox Code Playgroud)
这种方式涉及合并.根据你的分支有多少分歧,这可能是无痛的.或者它可能很复杂,你可能会弄乱你在任何地方都没有保存的更改.这就是为什么像我这样的魔术师更喜欢第一种方式.
Lau*_*lst 10
我会使用搁架扩展.我认为它与TortoiseHg一起发布,您也可以在UI中使用它:
hg shelve --all
hg up B1
hg unshelve
Run Code Online (Sandbox Code Playgroud)