From 583122cd1b37d12d6f9fb487302ae07f1b446f03 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 18 Nov 2005 08:31:55 -0800 Subject: [PATCH] Make "git fetch" less verbose by default When doing something like git fetch --tags origin the excessively verbose output of git fetch makes the result totally unreadable. It's impossible to tell if it actually fetched anything new or not, since the screen will fill up with an endless supply of ... * committish: 9165ec17fde255a1770886189359897dbb541012 tag 'v0.99.7c' of master.kernel.org:/pub/scm/git/git * refs/tags/v0.99.7c: same as tag 'v0.99.7c' of master.kernel.org:/pub/scm/git/git ... and any new tags that got fetched will be totally hidden. So add a new "--verbose" flag to "git fetch" to enable this verbose mode, but make the default be quiet. NOTE! The quiet mode will still report about new or changed heads, so if you are really fetching a new head, you'll see something like this: [torvalds@g5 git]$ git fetch --tags parent Packing 6 objects Unpacking 6 objects 100% (6/6) done * refs/tags/v1.0rc2: storing tag 'v1.0rc2' of master.kernel.org:/pub/scm/git/git * refs/tags/v1.0rc3: storing tag 'v1.0rc3' of master.kernel.org:/pub/scm/git/git * refs/tags/v1.0rc1: storing tag 'v1.0rc1' of master.kernel.org:/pub/scm/git/git which actually tells you something useful that isn't hidden by all the useless crud that you already had. Extensively tested (hey, for me, this _is_ extensive) by doing a rm .git/refs/tags/v1.0rc* and re-fetching with both --verbose and without. NOTE! This means that if the fetch didn't actually fetch anything at all, git fetch will be totally quiet. I think that's much better than being so verbose that you can't even tell whether something was fetched or not, but some people might prefer to get a "nothing to fetch" message in that case. Signed-off-by: Linus Torvalds Signed-off-by: Junio C Hamano --- git-fetch.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/git-fetch.sh b/git-fetch.sh index 8564cbfd..6586e773 100755 --- a/git-fetch.sh +++ b/git-fetch.sh @@ -12,6 +12,7 @@ IFS="$LF" tags= append= force= +verbose= update_head_ok= while case "$#" in 0) break ;; esac do @@ -30,6 +31,9 @@ do --update-head-o|--update-head-ok) update_head_ok=t ;; + -v|--verbose) + verbose=Yes + ;; *) break ;; @@ -91,12 +95,12 @@ append_fetch_head () { then headc_=$(git-rev-parse --verify "$head_^0") || exit echo "$headc_ $not_for_merge_ $note_" >>"$GIT_DIR/FETCH_HEAD" - echo >&2 "* committish: $head_" - echo >&2 " $note_" + [ "$verbose" ] && echo >&2 "* committish: $head_" + [ "$verbose" ] && echo >&2 " $note_" else echo "$head_ not-for-merge $note_" >>"$GIT_DIR/FETCH_HEAD" - echo >&2 "* non-commit: $head_" - echo >&2 " $note_" + [ "$verbose" ] && echo >&2 "* non-commit: $head_" + [ "$verbose" ] && echo >&2 " $note_" fi if test "$local_name_" != "" then @@ -116,7 +120,7 @@ fast_forward_local () { then if now_=$(cat "$GIT_DIR/$1") && test "$now_" = "$2" then - echo >&2 "* $1: same as $3" + [ "$verbose" ] && echo >&2 "* $1: same as $3" else echo >&2 "* $1: updating with $3" fi -- 2.11.0