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

Sean Farley sean at farley.io
Mon Feb 6 14:41:55 EST 2017


Kostia Balytskyi <kobalyts at outlook.com> writes:

> 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?

Perhaps I'm the only one worried about adding all these markers. To me,
it would make more sense to delete these markers since we're never going
to push these shelved changesets.

Also, this sounds like we're overloading the concept of markers. In the
past, I have wanted a concept of "markers that hide changesets" but to
group them into different namespaces. For example, remote branches not
checked out locally could be hidden into one such group, shelved changes
into another group, etc.

Though, I do realize I might be derailing this topic by trying to
generalize this.


More information about the Mercurial-devel mailing list