rollback deprecation

Martin Geisler martin at geisler.net
Thu Jul 18 09:01:14 CDT 2013


Angel Ezquerra <angel.ezquerra at gmail.com> writes:

> On Thu, Jul 18, 2013 at 10:29 AM, Martin Geisler <martin at geisler.net> wrote:
>> Kevin Bullock <kbullock+mercurial at ringworld.org> writes:
>>
>>> On 17 Jul 2013, at 9:07 AM, Antoine Pitrou wrote:
>>>
>>>> Martin Geisler <martin <at> geisler.net> writes:
>>>>
>>>>>
>>>>> # HG changeset patch
>>>>> # User Martin Geisler <martin <at> geisler.net>
>>>>> # Date 1374050974 -7200
>>>>> #      Wed Jul 17 10:49:34 2013 +0200
>>>>> # Node ID 85d4ebb3d89e29657c4d7365174d9120ba88ad34
>>>>> # Parent  ea4342d0e6fea19c8c4b7651f36929cd682afae7
>>>>> rollback: add reference to "hg commit --amend"
>>>>>
>>>>> Now that rollback is deprecated (yay!) users might need a pointer
>>>>> to the alternative for 99% of the cases where I used rollback.
>>>>
>>>> Rollback is deprecated? What is the recommended way to undo a bogus
>>>> commit (especially a merge or graft)? AFAICT, "strip" isn't part of
>>>> the core command set.
>>
>> You should be able to use 'hg commit --amend' in those case too. I
>> just tested it and I can amend both a merge commit and a graft commit
>> just fine with Mercurial 2.6.3.
>>
>> So I believe the better answer to your question is to use --amend. It
>> is only if you need to really get rid of a commit (as opposed to
>> correcting it) that --amend falls short.
>
> The problem with using --amend in this scenario is that it is not that
> easy to use it to uncommit a file. AFAIK the only way to do so is to
> revert that file to the its parent revision state and then use
> --amend.

Yes, that is unfortunately the way one has to use --amend. In other
words

  $ hg commit --amend -X foo

is not the same as

  $ hg rollback
  $ hg commit -X foo

since foo wont be excluded from the amended commit. I feel this is
surprising and unfortunate since I need to exclude entire files much
more frequently than I need to exclude changes to files when amending.
Also, from MQ works works like the rollback+commit sequence.

-- 
Martin Geisler


More information about the Mercurial-devel mailing list