The tip of the v4 of this patch can be found at [1]. It was a revamp sent by Junio mostly touching [PATCH v2 1/3] of the series. I've updated it a little to add in something of my taste ;-) There's only one concern that still bothers me a little. With the current code you would see the following, $ git rebase origin/maint 3013dff86 Current branch 3013dff86 is up to date. That doesn't look good, does it? How about we overcome the issue of handling this case and the HEAD case done in 3/3 by simplifying the message as shown in the following diff, diff --git a/git-rebase.sh b/git-rebase.sh index 0f379ba2b..4d5400034 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -601,11 +601,11 @@ then test -z "$switch_to" || GIT_REFLOG_ACTION="$GIT_REFLOG_ACTION: checkout $switch_to" \ git checkout -q "$switch_to" -- - say "$(eval_gettext "Current branch \$branch_name is up to date.")" + say "$(eval_gettext "\$branch_name is up to date.")" finish_rebase exit 0 else - say "$(eval_gettext "Current branch \$branch_name is up to date, rebase forced.")" + say "$(eval_gettext "\$branch_name is up to date, rebase forced.")" fi fi I guess this one is much better than 3/3 of this series as it handles any kind of case by making no assumptions. Thoughts ?? Note: In case you're wondering where's v3 of this series, there wasn't a v3 series but there was a v3 PATCH of 3/3 [2]. References: [1]: <xmqq1sjxt3tz.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxx> [2]: <20171201060935.19749-1-kaartic.sivaraam@xxxxxxxxx> Here's the interdiff between v4 and v5, diff --git a/git-rebase.sh b/git-rebase.sh index f3dd86443..fd72a35c6 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -518,7 +518,7 @@ case "$onto_name" in esac # If the branch to rebase is given, that is the branch we will rebase -# $branch_name -- branch being rebased, or HEAD (already detached) +# $branch_name -- branch/commit being rebased, or HEAD (already detached) # $orig_head -- commit object name of tip of the branch before rebasing # $head_name -- refs/heads/<that-branch> or "detached HEAD" switch_to= @@ -602,7 +602,7 @@ then GIT_REFLOG_ACTION="$GIT_REFLOG_ACTION: checkout $switch_to" \ git checkout -q "$switch_to" -- if test "$branch_name" = "HEAD" && - !(git symbolic-ref -q HEAD) + ! git symbolic-ref -q HEAD then say "$(eval_gettext "HEAD is up to date.")" else @@ -612,7 +612,7 @@ then exit 0 else if test "$branch_name" = "HEAD" && - !(git symbolic-ref -q HEAD) + ! git symbolic-ref -q HEAD then say "$(eval_gettext "HEAD is up to date, rebase forced.")" else Kaartic Sivaraam (3): rebase: consistently use branch_name variable rebase: distinguish user input by quoting it rebase: rebasing can also be done when HEAD is detached git-rebase.sh | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) -- 2.15.0.531.g2ccb3012c