1#!/bin/sh 2. git-sh-setup|| die "Not a git archive" 3 4# Parse out parameters and then stop at remote, so that we can 5# translate it using .git/branches information 6has_all= 7has_force= 8has_exec= 9remote= 10 11while case"$#"in0)break;;esac 12do 13case"$1"in 14--all) 15 has_all=--all;; 16--force) 17 has_force=--force;; 18--exec=*) 19 has_exec="$1";; 20-*) 21 die "Unknown parameter$1";; 22*) 23set x "$@" 24shift 25break;; 26esac 27shift 28done 29case"$#"in 300) 31 die "Where would you want to push today?";; 32esac 33 34. git-parse-remote 35remote=$(get_remote_url "$@") 36case"$has_all"in 37--all)set x ;; 38'')set x $(get_remote_refs_for_push "$@");; 39esac 40shift 41 42case"$remote"in 43http://* | https://* | git://* | rsync://* ) 44 die "Cannot push to$remote";; 45esac 46 47set x "$remote""$@";shift 48test"$has_all"&&set x "$has_all""$@"&&shift 49test"$has_force"&&set x "$has_force""$@"&&shift 50test"$has_exec"&&set x "$has_exec""$@"&&shift 51 52exec git-send-pack"$@"