Re: [PATCH] rebase -i: inform the user they can re-order commits

Subsystems: the rest

2 messages, 1 author, 2016-06-15 · open the first message on its own page

Re: [PATCH] rebase -i: inform the user they can re-order commits

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:19

Junio C Hamano [off-list ref] writes:
Matthieu Moy [off-list ref] writes:
quoted
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.
 #

Re: [PATCH] rebase -i: inform the user they can re-order commits

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:21

Junio C Hamano [off-list ref] writes:
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).
I didn't hear anything from anybody on this one, so I take it that nobody
deeply cares either way.

I'll queue this to 'next' so that we can start the post-1.7.10 cycle with
this patch.

-- >8 --
Subject: [PATCH] rebase -i: remind that the lines are top-to-bottom

Nelson Benitez Leon opened a discussion with a patch with this in the
note:

    Hi, I was using git rebase -i for some time now and never occured to
    me I could reorder the commit lines to affect the order the commits
    are applied, learnt that recently from a git tutorial.

Nelson's patch was to stress the fact that the lines in the insn sheet can
be re-ordered in a much more verbose way.  Let's add a one-liner reminder
and also remind that the lines in the insn sheet is read from top to
bottom, unlike the "git log" output.

Discussion-triggered-by: Nelson Benitez Leon
Signed-off-by: Junio C Hamano <redacted>
---
 git-rebase--interactive.sh |    2 ++
 1 file changed, 2 insertions(+)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 5812222..2b7eb6d 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.
 #
-- 
1.7.10.rc1.63.g3c4e6
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help