qnew --parent

Matt Mackall mpm at selenic.com
Wed Feb 10 00:43:57 CST 2010


On Wed, 2010-02-10 at 14:23 +1100, Ben Schmidt wrote:
> Hi,
> 
> I hope this is the right place to raise this issue. Please let me know if not. 
> Happy to jump on a bug tracker or something if that's more appropriate.
> 
> This is quite a minor change, but I think useful.
> 
> I'd like to suggest adding a --parent option to qnew to allow it to create a patch 
> from a merged working directory by explicitly stating which parent of the merge 
> the patch should be based on.
> 
> My reasoning comes from an experience I just had. I maintain a patch queue of 
> changes I regularly apply to Vim as I compile it. Each time I want to compile, I 
> unapply my patches, pull in all the upstream changes, and then reapply the 
> patches. Recently, though, an upstream change conflicted severely with a patch. 
> Not having time immediately to rework the patch, and not being all that interested 
> in the upstream change, I decided to create a new patch to back out the upstream 
> change, applying it before the conflicting patch. After a bunch of trying things, 
> I found I could do it with debugsetparent, but it would be better if I could just do
> 
> hg backout -r BAD_REV
> hg merge
> [...resolve conflicts by hand...]
> hg resolve -m --all
> hg qnew --parent UPSTREAM_TIP -f backout_BAD.patch
> hg strip BACKOUT_REV
> 
> I'm keen to do it this way as the three-way merge of hg merge was a lot easier to 
> deal with than trying to reverse the changes made by BAD_REV with just a simple patch.
> 
> It would probably make sense to allow qimport with the -r option to also work with 
> merge changesets by specifying --parent, too, though this is a bit more dangerous.

Seems like a job for rebase to me.

-- 
http://selenic.com : development and support for Mercurial and Linux




More information about the Mercurial-devel mailing list