X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-push.sh;fp=git-push.sh;h=136093bf138f57d45385c0d71344b4cd85c472d6;hb=9e9b26751a5ca7a257b3e1cfb319fe3e4efc663c;hp=1c5cf80f8786eb20c6092a8fbce48e1f1c1cb9e1;hpb=1be0659efca4a1f69c851f95563e930d70d8baf2;p=git.git diff --git a/git-push.sh b/git-push.sh index 1c5cf80f..136093bf 100755 --- a/git-push.sh +++ b/git-push.sh @@ -9,12 +9,15 @@ has_all= has_force= has_exec= remote= +do_tags= while case "$#" in 0) break ;; esac do case "$1" in --all) has_all=--all ;; + --tags) + do_tags=yes ;; --force) has_force=--force ;; --exec=*) @@ -33,6 +36,10 @@ case "$#" in echo "Where would you want to push today?" usage ;; esac +if test ",$has_all,$do_tags," = ",--all,yes," +then + do_tags= +fi . git-parse-remote remote=$(get_remote_url "$@") @@ -42,6 +49,20 @@ case "$has_all" in esac shift +case "$do_tags" in +yes) + set "$@" $(cd "$GIT_DIR/refs" && find tags -type f -print) ;; +esac + +# Now we have explicit refs from the command line or from remotes/ +# shorthand, or --tags. Falling back on the current branch if we still +# do not have any may be an alternative, but prevent mistakes for now. + +case "$#,$has_all" in +0,) + die "No refs given to be pushed." ;; +esac + case "$remote" in git://*) die "Cannot use READ-ONLY transport to push to $remote" ;;