[PATCH] Fix git pull handling of the quiet option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Although git pull has a documented quiet option, currently it doesn't
handle this option at all, and this results in it terminating the
handling of command line options when this particular option is met.

More exactly, it will cause the following invocation:
  git pull --quiet --no-commit
to fail with:
  error: unknown option `no-commit'
  usage: git-fetch [options] [<repository> <refspec>...]
because it will not look at anything after quiet (and no-commit and
other options should not be passed to git fetch).

This patch adds the handling of this option, and passes it correctly to
both git fetch and git merge (and therefore needs to be applied on top
of patched git merge).

The patch also adds a small test for making sure that the quiet option
works.

Signed-off-by: Iustin Pop <iusty@xxxxxxxxx>
---
 This is an updated version which includes a small test for the quiet option.

 git-pull.sh     |    8 +++++---
 t/t5520-pull.sh |    8 ++++++++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/git-pull.sh b/git-pull.sh
index 3ce32b5..2201ca0 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -16,7 +16,7 @@ cd_to_toplevel
 test -z "$(git ls-files -u)" ||
 	die "You are in the middle of a conflicted merge."
 
-strategy_args= no_summary= no_commit= squash= no_ff=
+strategy_args= no_summary= no_commit= squash= no_ff= quiet=
 curr_branch=$(git symbolic-ref -q HEAD)
 curr_branch_short=$(echo "$curr_branch" | sed "s|refs/heads/||")
 rebase=$(git config --bool branch.$curr_branch_short.rebase)
@@ -61,6 +61,8 @@ do
 	--no-r|--no-re|--no-reb|--no-reba|--no-rebas|--no-rebase)
 		rebase=false
 		;;
+	-q|--q|--qui|--quie|--quiet)
+		quiet=--quiet ;;
 	-h|--h|--he|--hel|--help)
 		usage
 		;;
@@ -116,7 +118,7 @@ test true = "$rebase" && {
 		"refs/remotes/$origin/$reflist" 2>/dev/null)"
 }
 orig_head=$(git rev-parse --verify HEAD 2>/dev/null)
-git-fetch --update-head-ok "$@" || exit 1
+git-fetch $quiet --update-head-ok "$@" || exit 1
 
 curr_head=$(git rev-parse --verify HEAD 2>/dev/null)
 if test "$curr_head" != "$orig_head"
@@ -177,4 +179,4 @@ test true = "$rebase" &&
 	exec git-rebase $strategy_args --onto $merge_head \
 	${oldremoteref:-$merge_head}
 exec git-merge $no_summary $no_commit $squash $no_ff $strategy_args \
-	"$merge_name" HEAD $merge_head
+	$quiet "$merge_name" HEAD $merge_head
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
index 9484129..6e36c00 100755
--- a/t/t5520-pull.sh
+++ b/t/t5520-pull.sh
@@ -21,6 +21,14 @@ test_expect_success 'pulling into void' '
 	git pull ..
 '
 
+test_expect_success 'quiet pull' '
+	git pull --quiet .. &&
+	if test -n "`git pull --quiet ..`"; then
+		echo "[OOPS] quiet pull is not quiet"
+		false
+	fi
+'
+
 cd "$D"
 
 test_expect_success 'checking the results' '
-- 
1.5.4.3
--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux