[PATCH] backout: add example of backing out a merge changeset

Mathias De Maré mathias.demare at gmail.com
Wed Sep 30 01:51:12 CDT 2015


On Wed, Sep 30, 2015 at 8:29 AM, Pierre-Yves David <
pierre-yves.david at ens-lyon.org> wrote:

>
>
> On 09/29/2015 10:35 PM, Mathias De Maré wrote:
>
>> # HG changeset patch
>> # User Mathias De Maré <mathias.demare at gmail.com>
>> # Date 1443590812 -7200
>> #      Wed Sep 30 07:26:52 2015 +0200
>> # Node ID 5a00a9ab705848b7de45b4263ed0bbab29494e29
>> # Parent  46af0adb5c375cc51ce0d29cbdcd8ba843a33425
>> backout: add example of backing out a merge changeset
>>
>
> How does this cope with:
>
>     Note:
>       backout cannot be used to fix either an unwanted or incorrect merge.
>
> Did you read previous discussion on the topic?

I found the following about the topic:
https://selenic.com/pipermail/mercurial-devel/2011-October/034559.html
The issues described are when you have 2 valid branches and the merge
between them goes wrong.
But what I describe here is when one of the branches is bad (and all the
changes on it are bad), while the other branch is good.
In that case, I would like to apply the inverse of the branch, and it seems
to be like that would indeed solve my issue.

Matt describes here (see the last example) the issue of backing out an
entire merge:
https://selenic.com/pipermail/mercurial-devel/2011-October/034569.html

> In other words, you just turned a broken real merge into a dummy merge,
> which is probably not what you wanted.
>
> In fact, that is what I wanted. I agree that a backout of a merge is a
broken concept in some of the cases, but I believe it is a valid concept
for the case I'm describing.
Perhaps I'm missing something here?

>
>
>
>
>> diff --git a/mercurial/commands.py b/mercurial/commands.py
>> --- a/mercurial/commands.py
>> +++ b/mercurial/commands.py
>> @@ -495,6 +495,19 @@
>>         cancel the merge and leave the child of REV as a head to be
>>         merged separately.
>>
>> +      Examples:
>> +
>> +      - do a backout of a merge changeset 33 that was created from
>> +        a good changeset 22 and a bad changeset 11::
>> +
>> +          hg backout -r 33 --parent 22
>> +          hg commit -m "Backout of merge 33 to parent 22"
>> +
>> +        After the backout, all of the changes on
>> +        the good side of the merge (the side of changeset 22 and
>> ancestors)
>> +        are kept, while the changes on the bad side of the merge
>> +        (the side of changeset 11 and ancestors) are backed out.
>> +
>>       See :hg:`help dates` for a list of formats valid for -d/--date.
>>
>>       Returns 0 on success, 1 if nothing to backout or there are
>> unresolved
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at selenic.com
>> https://selenic.com/mailman/listinfo/mercurial-devel
>>
>>
> --
> Pierre-Yves David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20150930/1efe7d67/attachment.html>


More information about the Mercurial-devel mailing list