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