Re: [PATCH] rebase -i: inform the user they can re-order commits
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 16, 2012, 14:39 UTC
- Message-ID
- <7vlin0ip9l.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <7vpqccipuv.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 14 quoted lines
> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes: > >> But if the user sees the help message of "rebase -i", then I don't think >> we will stop him from breaking anything by not mentionning that >> reordering commits can work. We already give other commands that rewrite >> history with more or less danger, so the additional messages isn't >> really harmful. > > I was not questioning that "You can also reorder" is dangerous in any way. > > What is dangerous is to give an illusion that it is safe to use "rebase > -i" without reading a decent documentation that does not even say that > reordering is one of the primary purpose of the command, and the mindset > that it is OK to give such an illusion with these reminder lines.
Another reason we may not want to say "you can re-order" is that we will probably need to say that you cannot arbitrarily re-order (can s/f come at the beginning?) unless you want to actively harm the user. Once we go down that path, we would end up repeating the manual.
Having said that, I do not personally care about this too deeply. Let's queue a reworded Nelson's patch so it is not lost while waiting for others to chime in.
How about this? I avoided phrases "applying commit" (incorrect: you apply patches, and you replay or cherry-pick commits) and "history" (to people who know, it is redundant; to people who don't, it is vague mystery), but added one more useful reminder (top to bottom).
git-rebase--interactive.sh | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 5812222..fd04c8f 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -846,6 +846,8 @@ cat >> "$todo" << EOF # f, fixup = like "squash", but discard this commit's log message # x, exec = run command (the rest of the line) using shell # +# These lines can be re-ordered; they are executed from top to bottom. +# # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. #