This is useful for scripts using rebase. Instead of redirecting to /dev/null, the script writers can just use -q Signed-off-by: Stephen Boyd <bebarino@xxxxxxxxx> --- Documentation/git-rebase.txt | 4 +++ git-rebase.sh | 49 ++++++++++++++++++++++++++++++++--------- t/t3400-rebase.sh | 7 ++++++ 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 26f3b7b..db1b71d 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -236,6 +236,10 @@ OPTIONS is used instead ('git-merge-recursive' when merging a single head, 'git-merge-octopus' otherwise). This implies --merge. +-q:: +--quiet:: + Be quiet. Implies --no-stat. + -v:: --verbose:: Be verbose. Implies --stat. diff --git a/git-rebase.sh b/git-rebase.sh index b83fd3f..9a39f0f 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -3,7 +3,7 @@ # Copyright (c) 2005 Junio C Hamano. # -USAGE='[--interactive | -i] [-v] [--force-rebase | -f] [--onto <newbase>] [<upstream>|--root] [<branch>]' +USAGE='[--interactive | -i] [-v] [--force-rebase | -f] [--onto <newbase>] [<upstream>|--root] [<branch>] [--quiet | -q]' LONG_USAGE='git-rebase replaces <branch> with a new branch of the same name. When the --onto option is provided the new branch starts out with a HEAD equal to <newbase>, otherwise it is equal to <upstream> @@ -46,11 +46,20 @@ do_merge= dotest="$GIT_DIR"/rebase-merge prec=4 verbose= +quiet= diffstat=$(git config --bool rebase.stat) git_am_opt= rebase_root= force_rebase= +say () +{ + if test -z "$quiet" + then + echo $@ + fi +} + continue_merge () { test -n "$prev_head" || die "prev_head must be defined" test -d "$dotest" || die "$dotest directory does not exist" @@ -72,9 +81,15 @@ continue_merge () { echo "directly, but instead do one of the following: " die "$RESOLVEMSG" fi - printf "Committed: %0${prec}d " $msgnum + if test -z "$quiet" + then + printf "Committed: %0${prec}d " $msgnum + fi else - printf "Already applied: %0${prec}d " $msgnum + if test -z "$quiet" + then + printf "Already applied: %0${prec}d " $msgnum + fi fi git rev-list --pretty=oneline -1 "$cmt" | sed -e 's/^[^ ]* //' @@ -138,7 +153,7 @@ move_to_original_branch () { finish_rb_merge () { move_to_original_branch rm -r "$dotest" - echo "All done." + say "All done." } is_interactive () { @@ -221,7 +236,7 @@ do head_name=$(cat "$GIT_DIR"/rebase-apply/head-name) && onto=$(cat "$GIT_DIR"/rebase-apply/onto) && orig_head=$(cat "$GIT_DIR"/rebase-apply/orig-head) && - git am --resolved --3way --resolvemsg="$RESOLVEMSG" && + git am --resolved $quiet --3way --resolvemsg="$RESOLVEMSG" && move_to_original_branch exit ;; @@ -249,7 +264,7 @@ do head_name=$(cat "$GIT_DIR"/rebase-apply/head-name) && onto=$(cat "$GIT_DIR"/rebase-apply/onto) && orig_head=$(cat "$GIT_DIR"/rebase-apply/orig-head) && - git am -3 --skip --resolvemsg="$RESOLVEMSG" && + git am -3 --skip $quiet --resolvemsg="$RESOLVEMSG" && move_to_original_branch exit ;; @@ -300,6 +315,12 @@ do -v|--verbose) verbose=t diffstat=t + quiet= + ;; + -q|--quiet) + quiet="-q" + verbose= + diffstat= ;; --whitespace=*) git_am_opt="$git_am_opt $1" @@ -445,15 +466,18 @@ then then # Lazily switch to the target branch if needed... test -z "$switch_to" || git checkout "$switch_to" - echo >&2 "Current branch $branch_name is up to date." + if test -z "$quiet" + then + echo >&2 "Current branch $branch_name is up to date." + fi exit 0 else - echo "Current branch $branch_name is up to date, rebase forced." + say "Current branch $branch_name is up to date, rebase forced." fi fi # Detach HEAD and reset the tree -echo "First, rewinding head to replay your work on top of it..." +say "First, rewinding head to replay your work on top of it..." git checkout -q "$onto^0" || die "could not detach HEAD" git update-ref ORIG_HEAD $branch @@ -471,7 +495,10 @@ fi # we just fast forwarded. if test "$mb" = "$branch" then - echo >&2 "Fast-forwarded $branch_name to $onto_name." + if test -z "$quiet" + then + echo >&2 "Fast-forwarded $branch_name to $onto_name." + fi move_to_original_branch exit 0 fi @@ -487,7 +514,7 @@ if test -z "$do_merge" then git format-patch -k --stdout --full-index --ignore-if-in-upstream \ $root_flag "$revisions" | - git am $git_am_opt --rebasing --resolvemsg="$RESOLVEMSG" && + git am $git_am_opt $quiet --rebasing --resolvemsg="$RESOLVEMSG" && move_to_original_branch ret=$? test 0 != $ret -a -d "$GIT_DIR"/rebase-apply && diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh index 7f62bfb..9456b2f 100755 --- a/t/t3400-rebase.sh +++ b/t/t3400-rebase.sh @@ -126,4 +126,11 @@ test_expect_success 'Show verbose error when HEAD could not be detached' ' grep "Untracked working tree file .B. would be overwritten" output.err ' +test_expect_success 'rebase -q is quiet' ' + rm B && + git checkout -b quiet topic && + git rebase -q master > output.out && + test ! -s output.out +' + test_done -- 1.6.3.2.225.gb8364 -- 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