#!/bin/sh
-. git-sh-setup || die "Not a git archive"
+. git-sh-setup
+
+usage () {
+ die "Usage: git push [--all] [--force] <repository> [<refspec>]"
+}
+
# Parse out parameters and then stop at remote, so that we can
# translate it using .git/branches information
--exec=*)
has_exec="$1" ;;
-*)
- die "Unknown parameter $1" ;;
+ usage ;;
*)
set x "$@"
shift
shift
case "$remote" in
-http://* | https://* | git://* | rsync://* )
- die "Cannot push to $remote" ;;
+git://*)
+ die "Cannot use READ-ONLY transport to push to $remote" ;;
+rsync://*)
+ die "Pushing with rsync transport is deprecated" ;;
esac
set x "$remote" "$@"; shift
test "$has_force" && set x "$has_force" "$@" && shift
test "$has_exec" && set x "$has_exec" "$@" && shift
-exec git-send-pack "$@"
+case "$remote" in
+http://* | https://*)
+ exec git-http-push "$@";;
+*)
+ exec git-send-pack "$@";;
+esac