Hi Victor, On Thu, 3 Sep 2020, Victor Toni wrote: > > It is rather unusual (or almost always wrong) to have a totally > > empty commit log or initial todo list, so it is understandable for > > Git in these situations to stop without doing anything further. > > > > There is no other sensible interpretations of what you are telling > > Git to you by returning an empty buffer---it is extremely unlikely > > you want to create a commit with no log message (without explicitly > > allowing it with --allow-empty-message, the command is likely to > > fail anyway), and it is extremely unlikely that you wanted to just > > reset the tip of the branch to the --onto commit. > > > > Once an interactive rebase session has started and you are given the > > remainder of the steps to edit and you give an empty buffer back, > > however, there are two possible interpretations that are equally > > sensible, I would think. > > > > - One is that you are signaling that you are done with the rebase > > session and all the remaining commits are to be discarded. > > > > - The other is that you botched editing the todo list, and you wish > > Git to give you another chance to edit it again. > > > > I think the implementor chose the first interpretation. The "drop" > > insn is a relatively recent invention, and back when it was missing > > from the vocabulary, I do not think it was possible to say " discard > > all the rest" without emptying the todo list, so that design is > > understandable. > > > > Now we have the "drop" verb, the latter interpretation becomes > > possible without making it impossible for the user to express the > > former. It might be a good idea to > > > > (1) save away the original before allowing --edit-todo to edit, We already do that: https://github.com/git/git/blob/v2.28.0/rebase-interactive.c#L113-L115 > > > > (2) open the editor, and > > > > (3) when getting an empty buffer back, go back to step (2) using > > the back-up made in step (1). Yes, and we can claim that this is a bug fix to avoid having to respect a deprecation phase. > > > > Either way, the todo list editor buffer can have additional comment > > instructing what happens when the buffer is emptied. > > > > Personally I would like to see your approach (1,2,3) implemented > because it is not destructive. If the user wants to achieve something > different he or she, or they, > can retry. > Option / interpretation a) > > > - One is that you are signaling that you are done with the rebase > > session and all the remaining commits are to be discarded. > > is more difficult to recover from. (I'm still thankful for `.git/logs/HEAD`) Indeed, it is pretty tedious to recover from when you can originally made edits to the todo list that you then accidentally discarded. Ciao, Dscho