如何将最新的远程更改拉入远程仓库(使用mqueues时)

时间:2015-04-22 15:09:11

标签: mercurial mqueue

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.

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

  1. 查看代码
  2. 对它做一些提交(可能但不一定使用mqueues)
  3. 从远程仓库中提取最新更改
  4. 将更改集成到我的仓库中。我对rebase或合并工作流程持开放态度,但是我想使用某种3路合并工具来解决冲突
  5. 编辑:我目前正在使用的工作流程为:

    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

0 个答案:

没有答案