pull: handle git-fetch's options as well
[gitweb.git] / git-pull.sh
index 0917d0d056573912df60afd7b556efe04eeebae8..623ba7a84dc200172e081fbb8b7f94a16dcb3d94 100755 (executable)
@@ -44,7 +44,8 @@ bool_or_string_config () {
 
 strategy_args= diffstat= no_commit= squash= no_ff= ff_only=
 log_arg= verbosity= progress= recurse_submodules= verify_signatures=
-merge_args= edit= rebase_args=
+merge_args= edit= rebase_args= all= append= upload_pack= force= tags= prune=
+keep= depth= unshallow= update_shallow= refmap=
 curr_branch=$(git symbolic-ref -q HEAD)
 curr_branch_short="${curr_branch#refs/heads/}"
 rebase=$(bool_or_string_config branch.$curr_branch_short.rebase)
@@ -166,11 +167,39 @@ do
        --d|--dr|--dry|--dry-|--dry-r|--dry-ru|--dry-run)
                dry_run=--dry-run
                ;;
+       --all|--no-all)
+               all=$1 ;;
+       -a|--append|--no-append)
+               append=$1 ;;
+       --upload-pack=*|--no-upload-pack)
+               upload_pack=$1 ;;
+       -f|--force|--no-force)
+               force="$force $1" ;;
+       -t|--tags|--no-tags)
+               tags=$1 ;;
+       -p|--prune|--no-prune)
+               prune=$1 ;;
+       -k|--keep|--no-keep)
+               keep=$1 ;;
+       --depth=*|--no-depth)
+               depth=$1 ;;
+       --unshallow|--no-unshallow)
+               unshallow=$1 ;;
+       --update-shallow|--no-update-shallow)
+               update_shallow=$1 ;;
+       --refmap=*|--no-refmap)
+               refmap=$1 ;;
        -h|--help-all)
                usage
                ;;
+       --)
+               shift
+               break
+               ;;
+       -*)
+               usage
+               ;;
        *)
-               # Pass thru anything that may be meant for fetch.
                break
                ;;
        esac
@@ -248,7 +277,9 @@ test true = "$rebase" && {
        oldremoteref=$(git merge-base --fork-point "$remoteref" $curr_branch 2>/dev/null)
 }
 orig_head=$(git rev-parse -q --verify HEAD)
-git fetch $verbosity $progress $dry_run $recurse_submodules --update-head-ok "$@" || exit 1
+git fetch $verbosity $progress $dry_run $recurse_submodules $all $append \
+$upload_pack $force $tags $prune $keep $depth $unshallow $update_shallow \
+$refmap --update-head-ok "$@" || exit 1
 test -z "$dry_run" || exit 0
 
 curr_head=$(git rev-parse -q --verify HEAD)