]>
Commit | Line | Data |
---|---|---|
51cb06c3 | 1 | #!/bin/sh |
215a7ad1 | 2 | . git-sh-setup || die "Not a git archive" |
46b1c7c0 | 3 | |
c4851047 CS |
4 | usage () { |
5 | die "Usage: git push [--all] [--force] <repository> [<refspec>]" | |
6 | } | |
7 | ||
8 | ||
46b1c7c0 JH |
9 | # Parse out parameters and then stop at remote, so that we can |
10 | # translate it using .git/branches information | |
11 | has_all= | |
12 | has_force= | |
13 | has_exec= | |
14 | remote= | |
15 | ||
16 | while case "$#" in 0) break ;; esac | |
17 | do | |
18 | case "$1" in | |
19 | --all) | |
20 | has_all=--all ;; | |
21 | --force) | |
22 | has_force=--force ;; | |
23 | --exec=*) | |
24 | has_exec="$1" ;; | |
25 | -*) | |
c4851047 | 26 | usage ;; |
46b1c7c0 | 27 | *) |
46b1c7c0 JH |
28 | set x "$@" |
29 | shift | |
30 | break ;; | |
31 | esac | |
32 | shift | |
33 | done | |
9a9cbb6e JH |
34 | case "$#" in |
35 | 0) | |
f9362de9 CS |
36 | echo "Where would you want to push today?" |
37 | usage ;; | |
9a9cbb6e | 38 | esac |
46b1c7c0 | 39 | |
215a7ad1 | 40 | . git-parse-remote |
ac4b0cff JH |
41 | remote=$(get_remote_url "$@") |
42 | case "$has_all" in | |
43 | --all) set x ;; | |
44 | '') set x $(get_remote_refs_for_push "$@") ;; | |
46b1c7c0 | 45 | esac |
ac4b0cff | 46 | shift |
46b1c7c0 JH |
47 | |
48 | case "$remote" in | |
df8171cc | 49 | git://*) |
c4851047 CS |
50 | die "Cannot use READ-ONLY transport to push to $remote" ;; |
51 | rsync://*) | |
52 | die "Pushing with rsync transport is deprecated" ;; | |
46b1c7c0 JH |
53 | esac |
54 | ||
55 | set x "$remote" "$@"; shift | |
56 | test "$has_all" && set x "$has_all" "$@" && shift | |
57 | test "$has_force" && set x "$has_force" "$@" && shift | |
58 | test "$has_exec" && set x "$has_exec" "$@" && shift | |
59 | ||
df8171cc NH |
60 | case "$remote" in |
61 | http://* | https://*) | |
62 | exec git-http-push "$@";; | |
63 | *) | |
64 | exec git-send-pack "$@";; | |
65 | esac |