evolve: revert amend

anatoly techtonik techtonik at gmail.com
Mon Aug 11 09:31:36 CDT 2014


On Mon, Aug 11, 2014 at 5:26 PM, Matt Mackall <mpm at selenic.com> wrote:
> On Mon, 2014-08-11 at 12:25 +0300, anatoly techtonik wrote:
>> On Mon, Aug 11, 2014 at 12:22 PM, anatoly techtonik <techtonik at gmail.com> wrote:
>> >
>> > I've was fixing a typo and accidentally amended all changes
>> > to a commit, is there a way to revert amend so that my
>> > modifications are not lost?
>>
>> $ hg uncommit
>> abort: nothing to uncommit
>>
>> I want to get back to 3171 and get back modifications to other
>> files in not-committed state. It that undo is possible?
>>
>>
>> @  changeset:   3173:79c37431f559
>> |  tag:         tip
>> |  parent:      3170:4d0047e4dd50
>> |
>> | x  changeset:   3172:1a7eaca96f66
>> | |  temporary amend commit for 60196217f989
>> | |
>> | x  changeset:   3171:60196217f989
>> |/
>> |
>> o    changeset:   3170:4d0047e4dd50
>> |\   parent:      3169:fcf21e6806af
>
> Always remember, everything in version control is just fancy diff and
> patch:

Except that with diff and patch you lose at least binary files and
file attributes. =)

> hg diff --hidden -r 3171:3173 > prematurecommit
> hg diff --hidden -r 3173:3171 > gobackwards
> hg import --no-commit gobackwards
> hg amend
> hg import --no-commit prematurecommit
>
> ..or whatever it is you're trying to do.

hg qimport tip
hg qrefresh nothing # hack to get empty patch
hg qrecord             # record needed changes
hg qfinish


More information about the Mercurial-devel mailing list