[PATCH 08 of 10 shelve-ext v3] shelve: add obs-based unshelve functionality

Kostia Balytskyi kobalyts at outlook.com
Mon Feb 6 06:06:48 EST 2017


On 03/02/2017 23:17, Sean Farley wrote:

> Kostia Balytskyi <ikostia at fb.com> writes:
>
>> # HG changeset patch
>> # User Kostia Balytskyi <ikostia at fb.com>
>> # Date 1484835394 28800
>> #      Thu Jan 19 06:16:34 2017 -0800
>> # Node ID 94a237a046059ef246aacb2c3ad809c9f0bdbe70
>> # Parent  abdf9565fdce15604ea4abf013cb7c98a11f70ca
>> shelve: add obs-based unshelve functionality
>>
>> Obsolescense-based unshelve works as follows:
>> 1. Instead of stripping temporary nodes, markers are created to
>> obsolete them.
>> 2. Restoring commit is just finding it in an unfiltered repo.
>> 3. '--keep' is only passed to rebase on traditional unshelves
>> (and thus traditional rebases), becuase we want markers to be
>> created fro obsolete-based rebases.
>> 4. 'hg unshelve' uses unfiltered repo to perform rebases
>> because we want rebase to be able to create markers between original
>> and new commits. 'rebaseskipobsolete' is disabled to make rebase not
>> skip the commit altogether.
> Before this gets into core, can we not implement stripping obs markers?
> This seems like a good use-case for such functionality.
I am not sure I understand why stripping obs-markers is a pre-requisite 
here. Can you explain?

FWIW, you can strip obs-markers like this: 'hg debugobsolete --delete 
7', where 7 is a maker index which can be learned by running 'hg 
debugobsolete --index'.
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel



More information about the Mercurial-devel mailing list