Subject: Re: bug#20137: number of generation doesn't always rise monotonically

From: Tomáš Čech <[email-masked]>
Date: Mon, 23 Mar 2015 00:40:51 +0100

Sorry, for some reason I didn't get any e-mail and noticed only
closing the bug. I'll subscribe to bug-guix ML to prevent it.

> That’s expected, yes.  What makes you think it’s a problem?

First, it was conflicting experience with what you were saying on IRC.
User experience was a bit confusing because the behaviour seemed
unexpected.

>When implementing that, there were several possible choices:
>
>  1. Upon rollback to N, remove all generations above N.  Rejected
>       because it gratuitously prevents useful use cases.
>
>  2. Upon rollback from P to N, keep all the generations, but use P+1
>     for the next generation number.  Doesn’t work, because rolling back
>     from P+1 would bring you back to P instead of N.

I can't understand this reason. It doesn't look like valid reason to
me, but only consequence of current implementation. It seems that you
don't store information about what was the previous generation and
that is whole point.

>  3. The current behavior.
>
>See <http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00325.html>
>for part of the discussion.

Thanks for looking that up!

>Perhaps we can eventually move to an actual tree structure where the
>nodes can be named whatever.  Until now I thought that's how generations
>work, and are just named after integers for identification purposes.

Yes, I had this in mind as well.

>I agree this would be the right thing for a real undo mechanism.

Exactly!

>But how useful would it be?  I’ve never been in a situation where
>rollback/switch-generation would be insufficient or inappropriate.

I haven't met such situation either (yet).

>I’m concerned that this would add both code and user interface
>complexity for mostly hypothetical use cases.  WDYT?

Yes, it would surely add some more code and would be demanding for
creating good visual represantation for users, but it could also be
much closer to behavior user would expect. And that is something which
makes tools to be natural to use.

Thank you all for your comments.

S_W