Re: [PATCH 2/2] Fix git pull handling of the quiet option

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH 2/2] Fix git pull handling of the quiet option

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:21

Iustin Pop [off-list ref] writes:
Although git pull has a documented quiet option,...
I think that is a documentation bug.  pull accepts all options for fetch
for the sole purpose of passing them intact to underlying fetch, and some
options to fetch does not even make much sense in the context of pull.

Also options to pull needs to come first; the options pull does not know
about is a signal for pull that the rest is for consumption of underlying
fetch.

If you want to teach --quiet to pull, however, your patch is the right
approach.  pull would eat --quiet and make a note for itself, and passes
that to underlying fetch (and perhaps merge).

You also need to sign-off your patch and add tests to make sure that other
people will not break your enhancement in the future.

Re: [PATCH 2/2] Fix git pull handling of the quiet option

From: Iustin Pop <hidden>
Date: 2016-06-15 22:44:21

On Sat, Mar 08, 2008 at 08:04:26PM -0800, Junio C Hamano wrote:
Iustin Pop [off-list ref] writes:
quoted
Although git pull has a documented quiet option,...
I think that is a documentation bug.  pull accepts all options for fetch
for the sole purpose of passing them intact to underlying fetch, and some
options to fetch does not even make much sense in the context of pull.

Also options to pull needs to come first; the options pull does not know
about is a signal for pull that the rest is for consumption of underlying
fetch.
Ah, I see. This is indeed not clear from the documentation.
If you want to teach --quiet to pull, however, your patch is the right
approach.  pull would eat --quiet and make a note for itself, and passes
that to underlying fetch (and perhaps merge).

You also need to sign-off your patch and add tests to make sure that other
people will not break your enhancement in the future.
Thanks, so the approach would be:
  - resend git merge patch including tests
  - and then resend git pull patch, again including tests.

Thanks for the feedback, I will try to see how the unittests are written
and hopefully come back with some more patches.

iustin

[PATCH] Fix git pull handling of the quiet option

From: Iustin Pop <hidden>
Date: 2016-06-15 22:44:21

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 <redacted>
---
 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help