[PATCH 2 of 4 V2] shelve: add a shelve extension to save/restore working changes

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed Oct 2 07:16:00 CDT 2013


On 10/02/2013 12:56 PM, Laurens Holst wrote:
> Op 02-10-13 12:19, harry schreef:
>> David Soria Parra-3 wrote
>>> It is possible to do everything with obsolete markers and phases (like
>>> it would be possible to do with mq), but shelve is a much more
>>> convenient way to move around temporary changes and clean the working
>>> directory for a short period while doing other.
>> I'm not asking why we need a shelve extension, just why unbundling the
>> changes is better than hidden changesets. Every change to the anscestors
>> should rebase the shelf if it was still in the graph, which would 
>> seem to be
>> an improvement over trying to merge everything at once when unshelving.
>
> Indeed.
>
> Or the shelf wouldn’t even need to be rebased, just marked as obsolete 
> and then “stabilised” once the shelf gets unshelved. I guess this 
> depends on amend behaviour for non-head changesets.

Storing shelve in bundle is an implementation details. It's a more 
robust approach that makes sure the shelve survive our current world 
where changeset stripping is common.
It could be stored as an hidden changeset it would not change how it work.

Shelve *may* need to be "merge" if it is unshelve on another changeset 
than the one it was shelved from (most common: hg shelve, hg merge, hg 
unshelve).

Merge, rebase, evolve will all do the very same thing.

I think everybody agrees here. We just use different word.

-- 
Pierre-Yves


More information about the Mercurial-devel mailing list