From: Stephen Boyd <bebarino@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 2/2] rebase: teach quiet option
Date: Sat, 13 Jun 2009 13:21:40 -0700 [thread overview]
Message-ID: <1244924500-27391-3-git-send-email-bebarino@gmail.com> (raw)
In-Reply-To: <1244924500-27391-2-git-send-email-bebarino@gmail.com>
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@gmail.com>
---
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
next prev parent reply other threads:[~2009-06-13 20:21 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-13 20:21 [PATCH 0/2] teach am and rebase -q/--quiet Stephen Boyd
2009-06-13 20:21 ` [PATCH 1/2] am: teach quiet option Stephen Boyd
2009-06-13 20:21 ` Stephen Boyd [this message]
2009-06-13 23:05 ` [PATCH 0/2] teach am and rebase -q/--quiet Junio C Hamano
2009-06-14 7:07 ` Stephen Boyd
2009-06-14 8:27 ` Sverre Rabbelier
2009-06-13 23:07 ` Junio C Hamano
2009-06-14 7:16 ` Stephen Boyd
2009-06-14 8:24 ` Junio C Hamano
2009-06-14 23:16 ` [PATCHv2 0/3] Teach shell scripts to be quiet Stephen Boyd
2009-06-14 23:16 ` [PATCHv2 1/3] git-sh-setup: introduce say() for quiet options Stephen Boyd
2009-06-14 23:16 ` [PATCHv2 2/3] submodule, repack: migrate to git-sh-setup's say() Stephen Boyd
2009-06-14 23:16 ` [PATCHv2 3/3] am, rebase: teach quiet option Stephen Boyd
2009-06-14 23:21 ` [PATCHv2 1/3] git-sh-setup: introduce say() for quiet options Thomas Adam
2009-06-15 4:23 ` Junio C Hamano
2009-06-15 6:15 ` Stephen Boyd
2009-06-15 6:25 ` Johannes Sixt
2009-06-15 6:33 ` Stephen Boyd
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1244924500-27391-3-git-send-email-bebarino@gmail.com \
--to=bebarino@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).