hg书籍建议在更新远程存储库Link时更新mqueue补丁的以下工作流程:
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.
新推荐的工作流程是什么?我想做什么:
编辑:我目前正在使用的工作流程为:
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
并且效果很好......我认为这就是我将要使用的内容。我对此的主要不满是,我真的更喜欢合并而不是rebase。我希望能够看到我的提交的真正父母以及我如何解决冲突。不幸的是,我并不认为合并和使用mqueues是兼容的工作流程。弹出一个有历史记录的补丁可能没有意义......
修改:
考虑到这一点,我认为这是下次当我知道我将要发生毛茸茸的冲突时我将要尝试的工作流程:
# Convert patches to real commits:
hg qfinish # some args
# Pull remote changes
# Merge remote changes
我认为在理论上我可以Rebase my merges away like in senario 7。