t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs
[gitweb.git] / builtin-replace.c
index e3767b9661f20660498add7b7fcd8928094a36d6..fe3a647a36c9a064d32c8bf9d9868da041bd82a2 100644 (file)
@@ -121,33 +121,39 @@ int cmd_replace(int argc, const char **argv, const char *prefix)
                OPT_END()
        };
 
-       argc = parse_options(argc, argv, options, git_replace_usage, 0);
+       argc = parse_options(argc, argv, prefix, options, git_replace_usage, 0);
 
        if (list && delete)
-               usage_with_options(git_replace_usage, options);
+               usage_msg_opt("-l and -d cannot be used together",
+                             git_replace_usage, options);
 
        if (force && (list || delete))
-               usage_with_options(git_replace_usage, options);
+               usage_msg_opt("-f cannot be used with -d or -l",
+                             git_replace_usage, options);
 
        /* Delete refs */
        if (delete) {
                if (argc < 1)
-                       usage_with_options(git_replace_usage, options);
+                       usage_msg_opt("-d needs at least one argument",
+                                     git_replace_usage, options);
                return for_each_replace_name(argv, delete_replace_ref);
        }
 
        /* Replace object */
        if (!list && argc) {
                if (argc != 2)
-                       usage_with_options(git_replace_usage, options);
+                       usage_msg_opt("bad number of arguments",
+                                     git_replace_usage, options);
                return replace_object(argv[0], argv[1], force);
        }
 
        /* List refs, even if "list" is not set */
        if (argc > 1)
-               usage_with_options(git_replace_usage, options);
+               usage_msg_opt("only one pattern can be given with -l",
+                             git_replace_usage, options);
        if (force)
-               usage_with_options(git_replace_usage, options);
+               usage_msg_opt("-f needs some arguments",
+                             git_replace_usage, options);
 
        return list_replace_refs(argv[0]);
 }