X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin-push.c;h=122fdcfbdc13a11388a091e5ec33d077648fab0a;hb=3b167396b416541f7559f3141392d56b93ea049c;hp=f5cc76266b1d7bc8bb0dcf0924cd866d326010a8;hpb=141201d124f3663a98e0f362c1af7f5f7b58dabb;p=git.git diff --git a/builtin-push.c b/builtin-push.c index f5cc76266..122fdcfbd 100644 --- a/builtin-push.c +++ b/builtin-push.c @@ -59,8 +59,17 @@ static int do_push(const char *repo, int flags) if (remote->mirror) flags |= (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE); - if ((flags & (TRANSPORT_PUSH_ALL|TRANSPORT_PUSH_MIRROR)) && refspec) - return -1; + if ((flags & TRANSPORT_PUSH_ALL) && refspec) { + if (!strcmp(*refspec, "refs/tags/*")) + return error("--all and --tags are incompatible"); + return error("--all can't be combined with refspecs"); + } + + if ((flags & TRANSPORT_PUSH_MIRROR) && refspec) { + if (!strcmp(*refspec, "refs/tags/*")) + return error("--mirror and --tags are incompatible"); + return error("--mirror can't be combined with refspecs"); + } if ((flags & (TRANSPORT_PUSH_ALL|TRANSPORT_PUSH_MIRROR)) == (TRANSPORT_PUSH_ALL|TRANSPORT_PUSH_MIRROR)) {