]>
Commit | Line | Data |
---|---|---|
51cb06c3 | 1 | #!/bin/sh |
215a7ad1 | 2 | . git-sh-setup || die "Not a git archive" |
46b1c7c0 JH |
3 | |
4 | # Parse out parameters and then stop at remote, so that we can | |
5 | # translate it using .git/branches information | |
6 | has_all= | |
7 | has_force= | |
8 | has_exec= | |
9 | remote= | |
10 | ||
11 | while case "$#" in 0) break ;; esac | |
12 | do | |
13 | case "$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 | *) | |
46b1c7c0 JH |
23 | set x "$@" |
24 | shift | |
25 | break ;; | |
26 | esac | |
27 | shift | |
28 | done | |
9a9cbb6e JH |
29 | case "$#" in |
30 | 0) | |
31 | die "Where would you want to push today?" ;; | |
32 | esac | |
46b1c7c0 | 33 | |
215a7ad1 | 34 | . git-parse-remote |
ac4b0cff JH |
35 | remote=$(get_remote_url "$@") |
36 | case "$has_all" in | |
37 | --all) set x ;; | |
38 | '') set x $(get_remote_refs_for_push "$@") ;; | |
46b1c7c0 | 39 | esac |
ac4b0cff | 40 | shift |
46b1c7c0 JH |
41 | |
42 | case "$remote" in | |
43 | http://* | https://* | git://* | rsync://* ) | |
44 | die "Cannot push to $remote" ;; | |
45 | esac | |
46 | ||
47 | set x "$remote" "$@"; shift | |
48 | test "$has_all" && set x "$has_all" "$@" && shift | |
49 | test "$has_force" && set x "$has_force" "$@" && shift | |
50 | test "$has_exec" && set x "$has_exec" "$@" && shift | |
51 | ||
52 | exec git-send-pack "$@" |