X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-push.sh;h=edc0b8317a6d566895c4a2df6a3f7d86773ca138;hb=5ca15b8af7f018b9ae9da30130f9dcd1a896e0b3;hp=a67f47df8ea4cdd3c916afdea6791f7e64571e7c;hpb=f9362de96131c323a00ce5e135dd76f7134c7f01;p=git.git diff --git a/git-push.sh b/git-push.sh index a67f47df..edc0b831 100755 --- a/git-push.sh +++ b/git-push.sh @@ -1,6 +1,11 @@ #!/bin/sh . git-sh-setup || die "Not a git archive" +usage () { + die "Usage: git push [--all] [--force] []" +} + + # Parse out parameters and then stop at remote, so that we can # translate it using .git/branches information has_all= @@ -18,7 +23,7 @@ do --exec=*) has_exec="$1" ;; -*) - die "Unknown parameter $1" ;; + usage ;; *) set x "$@" shift @@ -41,8 +46,10 @@ esac 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 @@ -50,4 +57,9 @@ test "$has_all" && set x "$has_all" "$@" && 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