git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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.
 #
Previous: Junio C HamanoNext: Junio C Hamano
Message 12 of 15 in “rebase -i: inform the user they can re-order commits”
  1. rebase -i: inform the user they can re-order commitsNelson Benitez Leon, Mar 16, 2012
  2. Matthieu MoyMar 16, 2012
  3. Nelson Benitez LeonMar 16, 2012
  4. Matthieu MoyMar 16, 2012
  5. Jakub NarebskiMar 16, 2012
  6. Junio C HamanoMar 16, 2012
  7. Nelson Benitez LeonMar 16, 2012
  8. Matthieu MoyMar 16, 2012
  9. Junio C HamanoMar 16, 2012
  10. Matthieu MoyMar 16, 2012
  11. Junio C HamanoMar 16, 2012
  12. Junio C HamanoMar 16, 2012
  13. Junio C HamanoMar 20, 2012
  14. Matthieu MoyMar 21, 2012
  15. Philip OakleyMar 21, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.