The "while" loop in the function do_rest is not supposed to ever be exited. Instead, the function do_one checks if there is nothing left, and cleans up and exits if that is the case. So the diffstat code belongs there. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- git-rebase--interactive.sh | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 67f2ee2..84148a9 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -239,7 +239,10 @@ do_next () { fi && message="$GIT_REFLOG_ACTION: $HEADNAME onto $SHORTONTO)" && git update-ref -m "$message" $HEADNAME $NEWHEAD $OLDHEAD && - git symbolic-ref HEAD $HEADNAME && + git symbolic-ref HEAD $HEADNAME && { + test ! -f "$DOTEST"/verbose || + git diff --stat $(cat "$DOTEST"/head)..HEAD + } && rm -rf "$DOTEST" && warn "Successfully rebased and updated $HEADNAME." @@ -251,9 +254,6 @@ do_rest () { do do_next done - test -f "$DOTEST"/verbose && - git diff --stat $(cat "$DOTEST"/head)..HEAD - exit } while case $# in 0) break ;; esac -- 1.5.3.rc0.2712.g125b7f - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html