]> git.ipfire.org Git - thirdparty/git.git/blobdiff - revision.c
commit-reach(paint_down_to_common): start reporting errors
[thirdparty/git.git] / revision.c
index 34230b17d0dbba140964910e354a72931fb1620f..2424c9bd674e534909df89e25c21b5eb119fda05 100644 (file)
 #include "reflog-walk.h"
 #include "patch-ids.h"
 #include "decorate.h"
-#include "log-tree.h"
 #include "string-list.h"
 #include "line-log.h"
 #include "mailmap.h"
 #include "commit-slab.h"
-#include "dir.h"
 #include "cache-tree.h"
 #include "bisect.h"
 #include "packfile.h"
@@ -2403,8 +2401,8 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
                revs->left_right = 1;
        } else if (!strcmp(arg, "--left-only")) {
                if (revs->right_only)
-                       die("--left-only is incompatible with --right-only"
-                           " or --cherry");
+                       die(_("options '%s' and '%s' cannot be used together"),
+                           "--left-only", "--right-only/--cherry");
                revs->left_only = 1;
        } else if (!strcmp(arg, "--right-only")) {
                if (revs->left_only)
@@ -2728,7 +2726,8 @@ static int handle_revision_pseudo_opt(struct rev_info *revs,
                clear_ref_exclusions(&revs->ref_excludes);
        } else if (!strcmp(arg, "--branches")) {
                if (revs->ref_excludes.hidden_refs_configured)
-                       return error(_("--exclude-hidden cannot be used together with --branches"));
+                       return error(_("options '%s' and '%s' cannot be used together"),
+                                    "--exclude-hidden", "--branches");
                handle_refs(refs, revs, *flags, refs_for_each_branch_ref);
                clear_ref_exclusions(&revs->ref_excludes);
        } else if (!strcmp(arg, "--bisect")) {
@@ -2739,12 +2738,14 @@ static int handle_revision_pseudo_opt(struct rev_info *revs,
                revs->bisect = 1;
        } else if (!strcmp(arg, "--tags")) {
                if (revs->ref_excludes.hidden_refs_configured)
-                       return error(_("--exclude-hidden cannot be used together with --tags"));
+                       return error(_("options '%s' and '%s' cannot be used together"),
+                                    "--exclude-hidden", "--tags");
                handle_refs(refs, revs, *flags, refs_for_each_tag_ref);
                clear_ref_exclusions(&revs->ref_excludes);
        } else if (!strcmp(arg, "--remotes")) {
                if (revs->ref_excludes.hidden_refs_configured)
-                       return error(_("--exclude-hidden cannot be used together with --remotes"));
+                       return error(_("options '%s' and '%s' cannot be used together"),
+                                    "--exclude-hidden", "--remotes");
                handle_refs(refs, revs, *flags, refs_for_each_remote_ref);
                clear_ref_exclusions(&revs->ref_excludes);
        } else if ((argcount = parse_long_opt("glob", argv, &optarg))) {
@@ -2762,21 +2763,24 @@ static int handle_revision_pseudo_opt(struct rev_info *revs,
        } else if (skip_prefix(arg, "--branches=", &optarg)) {
                struct all_refs_cb cb;
                if (revs->ref_excludes.hidden_refs_configured)
-                       return error(_("--exclude-hidden cannot be used together with --branches"));
+                       return error(_("options '%s' and '%s' cannot be used together"),
+                                    "--exclude-hidden", "--branches");
                init_all_refs_cb(&cb, revs, *flags);
                for_each_glob_ref_in(handle_one_ref, optarg, "refs/heads/", &cb);
                clear_ref_exclusions(&revs->ref_excludes);
        } else if (skip_prefix(arg, "--tags=", &optarg)) {
                struct all_refs_cb cb;
                if (revs->ref_excludes.hidden_refs_configured)
-                       return error(_("--exclude-hidden cannot be used together with --tags"));
+                       return error(_("options '%s' and '%s' cannot be used together"),
+                                    "--exclude-hidden", "--tags");
                init_all_refs_cb(&cb, revs, *flags);
                for_each_glob_ref_in(handle_one_ref, optarg, "refs/tags/", &cb);
                clear_ref_exclusions(&revs->ref_excludes);
        } else if (skip_prefix(arg, "--remotes=", &optarg)) {
                struct all_refs_cb cb;
                if (revs->ref_excludes.hidden_refs_configured)
-                       return error(_("--exclude-hidden cannot be used together with --remotes"));
+                       return error(_("options '%s' and '%s' cannot be used together"),
+                                    "--exclude-hidden", "--remotes");
                init_all_refs_cb(&cb, revs, *flags);
                for_each_glob_ref_in(handle_one_ref, optarg, "refs/remotes/", &cb);
                clear_ref_exclusions(&revs->ref_excludes);
@@ -3055,8 +3059,6 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
                revs->grep_filter.ignore_locale = 1;
        compile_grep_patterns(&revs->grep_filter);
 
-       if (revs->reverse && revs->reflog_info)
-               die(_("options '%s' and '%s' cannot be used together"), "--reverse", "--walk-reflogs");
        if (revs->reflog_info && revs->limited)
                die("cannot combine --walk-reflogs with history-limiting options");
        if (revs->rewrite_parents && revs->children.name)
@@ -3067,11 +3069,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
        /*
         * Limitations on the graph functionality
         */
-       if (revs->reverse && revs->graph)
-               die(_("options '%s' and '%s' cannot be used together"), "--reverse", "--graph");
+       die_for_incompatible_opt3(!!revs->graph, "--graph",
+                                 !!revs->reverse, "--reverse",
+                                 !!revs->reflog_info, "--walk-reflogs");
 
-       if (revs->reflog_info && revs->graph)
-               die(_("options '%s' and '%s' cannot be used together"), "--walk-reflogs", "--graph");
        if (revs->no_walk && revs->graph)
                die(_("options '%s' and '%s' cannot be used together"), "--no-walk", "--graph");
        if (!revs->reflog_info && revs->grep_filter.use_reflog_filter)