Subject: Re: Command-line interface thoughts

From: Paul Ebermann <[email-masked]>
Date: Sun, 05 Jun 2011 23:22:47 +0200

Jakub Narebski skribis:
> On Sun, 5 Jun 2011, Michael Nahas wrote:
>> On Sat, Jun 4, 2011 at 5:49 PM, Jakub Narebski <[email-masked]> wrote:
>>> Michael Nahas <[email-masked]> writes:
[...]
>>>> "stash save"
>>>>    STASH = new(new(HEAD+(NEXT-HEAD))+WTREE-NEXT)
>>>>    NEXT = HEAD
>>>>    WTREE = HEAD
>>>>    push(STASH)
>>>> "stash pop"
>>>>    STASH = pop()
>>>>    WTREE = HEAD + (STASH-STASH^^)
>>>>    NEXT = HEAD + (STASH^-STASH^^)
>>>
>>> ???
>>
>> "stash save" makes two new consecutive commits: one equal to NEXT and
>> another equal to WTREE.
> 
> No, "stash save" doesn't make two _consecutive_ commits.  It makes
> a commit which has state of worktree as one parent, and state of index
> as other parent (i.e. a merge commit).

Hmm, for me it always looked like one commit with the index state as
content and HEAD as parent, and second one with the Worktree as content,
and both HEAD and the mentioned index commit as parent.

This is technically a merge commit (as it has two parents), but not
really done as a merge.

Paul