3

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.

什么是新的推荐工作流程?我想做的事:

  1. 签出代码
  2. 对其进行一些提交(可能但不一定使用 mqueues)
  3. 从远程仓库拉取最新的更改
  4. 将更改集成到我的存储库中。我对变基或合并工作流程持开放态度,但是我想使用某种 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 中那样重新合并我的合并

4

0 回答 0