3

The hg book recommends the following workflow for updating your mqueue patches when the remote repository has been updated 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  

The qsave command says:

> This command is deprecated, use "hg rebase" instead.

What is the new recommended workflow? What I want to do:

  1. Check out code
  2. Make some commits to it (probably but not necessarily using mqueues)
  3. Pull the latest changes from the remote repo
  4. Integrate the changes into my repo. I am open to a rebase or a merge workflow, however I want to use some kind of 3-way merge tool to resolve conflicts

Edit: The workflow I am currently using now is:

hg qpop --all
hg pullup
hg qpush # repeat until no patches left.

The issue with this workflow is that it generates .reject files.

I know I can also do a:

hg qpush --all
hg pull --rebase

The issue with this is that I don't know how to abort or undo it since it actually modifies my patches. I think it creates some kind of backup as described by this message: saved backup bundle to /someDirectory/.hg/strip-backup/424323abc42a-backup.hg.


Edit:

I just did a hg pull --rebase and it worked well... I think that this is what I am going to use going forward. My main uncomfort with this is that I really would prefer to merge than rebase. I want to be able to see the real parent of my commits and how I resolved conflicts. Unfortunately, I don't think that merging and using mqueues is a compatible workflow. It probably doesn't make sense to pop a patch that has history on top of it...


Edit:

Thinking about this a bit more, I think that this is the workflow I am going to try next time when I know I am going to have hairy conflicts:

# Convert patches to real commits: 
hg qfinish # some args

# Pull remote changes

# Merge remote changes

I think in theory after doing that I could Rebase my merges away like in senario 7.

sixtyfootersdude
  • 25,859
  • 43
  • 145
  • 213

0 Answers0