hg book 建议在远程存储库更新时使用以下工作流程更新您的 mqueue 补丁Link:
hg qpush --all
# QSave is now depricated (according to hg qsave --help). It appears to have been
# depricated since at least 2010. Additionally, QSave is not working in my environment
# due to my organization's commit hooks
hg qsave
hg pull
hg update --clean
hg qpush -m -a
qsave
命令说:
> This command is deprecated, use "hg rebase" instead.
什么是新的推荐工作流程?我想做的事:
- 签出代码
- 对其进行一些提交(可能但不一定使用 mqueues)
- 从远程仓库拉取最新的更改
- 将更改集成到我的存储库中。我对变基或合并工作流程持开放态度,但是我想使用某种 3 路合并工具来解决冲突
编辑:我现在使用的工作流程是:
hg qpop --all
hg pullup
hg qpush # repeat until no patches left.
此工作流程的问题在于它会生成.reject
文件。
我知道我也可以这样做:
hg qpush --all
hg pull --rebase
这个问题是我不知道如何中止或撤消它,因为它实际上修改了我的补丁。我认为它会创建某种备份,如以下消息所述:saved backup bundle to /someDirectory/.hg/strip-backup/424323abc42a-backup.hg
.
编辑:
我刚刚做了一个hg pull --rebase
并且效果很好......我认为这就是我将要使用的东西。我对此的主要不满是我真的更喜欢合并而不是变基。我希望能够看到我提交的真正父级以及我是如何解决冲突的。不幸的是,我不认为合并和使用 mqueues 是一个兼容的工作流程。弹出一个上面有历史的补丁可能没有意义......
编辑:
再想一想,我认为这是我下次知道我将有毛茸茸的冲突时要尝试的工作流程:
# Convert patches to real commits:
hg qfinish # some args
# Pull remote changes
# Merge remote changes
我认为在理论上这样做之后,我可以像在 senario 7 中那样重新合并我的合并。