X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-fetch.sh;h=b46b3e558945a3afb783894c75ce20cede0b4eec;hb=d5a6aafc90a14382120727e4e81ee1a380e8b194;hp=8564cbfd7abaf0c5aff8d79d660f40b6747d25a0;hpb=f7a2eb735982e921ae4379f1dcf5f7a023610393;p=git.git diff --git a/git-fetch.sh b/git-fetch.sh index 8564cbfd..b46b3e55 100755 --- a/git-fetch.sh +++ b/git-fetch.sh @@ -1,6 +1,8 @@ #!/bin/sh # -. git-sh-setup || die "Not a git archive" + +USAGE=' ...' +. git-sh-setup . git-parse-remote _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40" @@ -12,6 +14,7 @@ IFS="$LF" tags= append= force= +verbose= update_head_ok= while case "$#" in 0) break ;; esac do @@ -30,6 +33,12 @@ do --update-head-o|--update-head-ok) update_head_ok=t ;; + -v|--verbose) + verbose=Yes + ;; + -*) + usage + ;; *) break ;; @@ -91,12 +100,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 +125,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 @@ -179,11 +188,20 @@ esac reflist=$(get_remote_refs_for_fetch "$@") if test "$tags" then - taglist=$(git-ls-remote --tags "$remote" | - sed -e ' - /\^/d - s/^[^ ]* // - s/.*/&:&/') + taglist=$(IFS=" " && + git-ls-remote --tags "$remote" | + while read sha1 name + do + case "$name" in + (*^*) continue ;; + esac + if git-check-ref-format "$name" + then + echo ".${name}:${name}" + else + echo >&2 "warning: tag ${name} ignored" + fi + done) if test "$#" -gt 1 then # remote URL plus explicit refspecs; we need to merge them.