i18n: turn even more messages into "cannot be used together" ones

Even if some of these messages are not subject to gettext i18n, this
helps bring a single style of message for a given error type.

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
Reviewed-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jean-Noël Avila 2022-01-05 20:02:24 +00:00 committed by Junio C Hamano
parent d7d30badbf
commit 246cac8505
23 changed files with 47 additions and 41 deletions

View File

@ -566,7 +566,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
if (pathspec_from_file) { if (pathspec_from_file) {
if (pathspec.nr) if (pathspec.nr)
die(_("--pathspec-from-file is incompatible with pathspec arguments")); die(_("'%s' and pathspec arguments cannot be used together"), "--pathspec-from-file");
parse_pathspec_file(&pathspec, PATHSPEC_ATTR, parse_pathspec_file(&pathspec, PATHSPEC_ATTR,
PATHSPEC_PREFER_FULL | PATHSPEC_PREFER_FULL |

View File

@ -2230,9 +2230,9 @@ static int parse_opt_show_current_patch(const struct option *opt, const char *ar
} }
if (resume->mode == RESUME_SHOW_PATCH && new_value != resume->sub_mode) if (resume->mode == RESUME_SHOW_PATCH && new_value != resume->sub_mode)
return error(_("--show-current-patch=%s is incompatible with " return error(_("options '%s=%s' and '%s=%s' "
"--show-current-patch=%s"), "cannot be used together"),
arg, valid_modes[resume->sub_mode]); "--show-current-patch", "--show-current-patch", arg, valid_modes[resume->sub_mode]);
resume->mode = RESUME_SHOW_PATCH; resume->mode = RESUME_SHOW_PATCH;
resume->sub_mode = new_value; resume->sub_mode = new_value;

View File

@ -729,7 +729,7 @@ int cmd_cat_file(int argc, const char **argv, const char *prefix)
} }
if (force_path && batch.enabled) { if (force_path && batch.enabled) {
error("--path=<path> incompatible with --batch"); error("options '--path=<path>' and '--batch' cannot be used together");
usage_with_options(cat_file_usage, options); usage_with_options(cat_file_usage, options);
} }

View File

@ -1635,8 +1635,8 @@ static int checkout_main(int argc, const char **argv, const char *prefix,
} }
if ((!!opts->new_branch + !!opts->new_branch_force + !!opts->new_orphan_branch) > 1) if ((!!opts->new_branch + !!opts->new_branch_force + !!opts->new_orphan_branch) > 1)
die(_("-%c, -%c and --orphan are mutually exclusive"), die(_("options '-%c', '-%c', and '%s' cannot be used together"),
cb_option, toupper(cb_option)); cb_option, toupper(cb_option), "--orphan");
if (opts->overlay_mode == 1 && opts->patch_mode) if (opts->overlay_mode == 1 && opts->patch_mode)
die(_("options '%s' and '%s' cannot be used together"), "-p", "--overlay"); die(_("options '%s' and '%s' cannot be used together"), "-p", "--overlay");
@ -1746,7 +1746,7 @@ static int checkout_main(int argc, const char **argv, const char *prefix,
if (opts->pathspec_from_file) { if (opts->pathspec_from_file) {
if (opts->pathspec.nr) if (opts->pathspec.nr)
die(_("--pathspec-from-file is incompatible with pathspec arguments")); die(_("'%s' and pathspec arguments cannot be used together"), "--pathspec-from-file");
if (opts->force_detach) if (opts->force_detach)
die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--detach"); die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--detach");

View File

@ -900,8 +900,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
if (option_bare) { if (option_bare) {
if (option_origin) if (option_origin)
die(_("--bare and --origin %s options are incompatible."), die(_("options '%s' and '%s %s' cannot be used together"),
option_origin); "--bare", "--origin", option_origin);
if (real_git_dir) if (real_git_dir)
die(_("options '%s' and '%s' cannot be used together"), "--bare", "--separate-git-dir"); die(_("options '%s' and '%s' cannot be used together"), "--bare", "--separate-git-dir");
option_no_checkout = 1; option_no_checkout = 1;

View File

@ -361,7 +361,7 @@ static const char *prepare_index(const char **argv, const char *prefix,
die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "-a"); die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "-a");
if (pathspec.nr) if (pathspec.nr)
die(_("--pathspec-from-file is incompatible with pathspec arguments")); die(_("'%s' and pathspec arguments cannot be used together"), "--pathspec-from-file");
parse_pathspec_file(&pathspec, 0, parse_pathspec_file(&pathspec, 0,
PATHSPEC_PREFER_FULL, PATHSPEC_PREFER_FULL,
@ -799,7 +799,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
if (!strcmp(fixup_prefix, "amend")) { if (!strcmp(fixup_prefix, "amend")) {
if (have_option_m) if (have_option_m)
die(_("cannot combine -m with --fixup:%s"), fixup_message); die(_("options '%s' and '%s:%s' cannot be used together"), "-m", "--fixup", fixup_message);
prepare_amend_commit(commit, &sb, &ctx); prepare_amend_commit(commit, &sb, &ctx);
} }
} else if (!stat(git_path_merge_msg(the_repository), &statbuf)) { } else if (!stat(git_path_merge_msg(the_repository), &statbuf)) {
@ -1229,9 +1229,10 @@ static void check_fixup_reword_options(int argc, const char *argv[]) {
die(_("You are in the middle of a cherry-pick -- cannot reword.")); die(_("You are in the middle of a cherry-pick -- cannot reword."));
} }
if (argc) if (argc)
die(_("cannot combine reword option of --fixup with path '%s'"), *argv); die(_("reword option of '%s' and path '%s' cannot be used together"), "--fixup", *argv);
if (patch_interactive || interactive || all || also || only) if (patch_interactive || interactive || all || also || only)
die(_("reword option of --fixup is mutually exclusive with --patch/--interactive/--all/--include/--only")); die(_("reword option of '%s' and '%s' cannot be used together"),
"--fixup", "--patch/--interactive/--all/--include/--only");
} }
static int parse_and_validate_options(int argc, const char *argv[], static int parse_and_validate_options(int argc, const char *argv[],

View File

@ -670,9 +670,9 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
} }
describe("HEAD", 1); describe("HEAD", 1);
} else if (dirty) { } else if (dirty) {
die(_("--dirty is incompatible with commit-ishes")); die(_("option '%s' and commit-ishes cannot be used together"), "--dirty");
} else if (broken) { } else if (broken) {
die(_("--broken is incompatible with commit-ishes")); die(_("option '%s' and commit-ishes cannot be used together"), "--broken");
} else { } else {
while (argc-- > 0) while (argc-- > 0)
describe(*argv++, argc == 0); describe(*argv++, argc == 0);

View File

@ -1460,8 +1460,8 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
if (i >= 0) { if (i >= 0) {
if (is_merge(&options)) if (is_merge(&options))
die(_("cannot combine apply options with " die(_("apply options and merge options "
"merge options")); "cannot be used together"));
else else
options.type = REBASE_APPLY; options.type = REBASE_APPLY;
} }

View File

@ -426,7 +426,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--patch"); die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--patch");
if (pathspec.nr) if (pathspec.nr)
die(_("--pathspec-from-file is incompatible with pathspec arguments")); die(_("'%s' and pathspec arguments cannot be used together"), "--pathspec-from-file");
parse_pathspec_file(&pathspec, 0, parse_pathspec_file(&pathspec, 0,
PATHSPEC_PREFER_FULL, PATHSPEC_PREFER_FULL,

View File

@ -676,7 +676,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
if (revs.count && if (revs.count &&
(revs.tag_objects || revs.tree_objects || revs.blob_objects) && (revs.tag_objects || revs.tree_objects || revs.blob_objects) &&
(revs.left_right || revs.cherry_mark)) (revs.left_right || revs.cherry_mark))
die(_("marked counting is incompatible with --objects")); die(_("marked counting and '%s' cannot be used together"), "--objects");
save_commit_buffer = (revs.verbose_header || save_commit_buffer = (revs.verbose_header ||
revs.grep_filter.pattern_list || revs.grep_filter.pattern_list ||

View File

@ -272,7 +272,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
if (pathspec_from_file) { if (pathspec_from_file) {
if (pathspec.nr) if (pathspec.nr)
die(_("--pathspec-from-file is incompatible with pathspec arguments")); die(_("'%s' and pathspec arguments cannot be used together"), "--pathspec-from-file");
parse_pathspec_file(&pathspec, 0, parse_pathspec_file(&pathspec, 0,
PATHSPEC_PREFER_CWD, PATHSPEC_PREFER_CWD,

View File

@ -1706,7 +1706,7 @@ static int push_stash(int argc, const char **argv, const char *prefix,
die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--staged"); die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--staged");
if (ps.nr) if (ps.nr)
die(_("--pathspec-from-file is incompatible with pathspec arguments")); die(_("'%s' and pathspec arguments cannot be used together"), "--pathspec-from-file");
parse_pathspec_file(&ps, 0, parse_pathspec_file(&ps, 0,
PATHSPEC_PREFER_FULL | PATHSPEC_PREFIX_ORIGIN, PATHSPEC_PREFER_FULL | PATHSPEC_PREFIX_ORIGIN,

12
diff.c
View File

@ -4639,16 +4639,20 @@ void diff_setup_done(struct diff_options *options)
options->set_default(options); options->set_default(options);
if (HAS_MULTI_BITS(options->output_format & check_mask)) if (HAS_MULTI_BITS(options->output_format & check_mask))
die(_("--name-only, --name-status, --check and -s are mutually exclusive")); die(_("options '%s', '%s', '%s', and '%s' cannot be used together"),
"--name-only", "--name-status", "--check", "-s");
if (HAS_MULTI_BITS(options->pickaxe_opts & DIFF_PICKAXE_KINDS_MASK)) if (HAS_MULTI_BITS(options->pickaxe_opts & DIFF_PICKAXE_KINDS_MASK))
die(_("options '%s', '%s', and '%s' cannot be used together"), "-G", "-S", "--find-object"); die(_("options '%s', '%s', and '%s' cannot be used together"),
"-G", "-S", "--find-object");
if (HAS_MULTI_BITS(options->pickaxe_opts & DIFF_PICKAXE_KINDS_G_REGEX_MASK)) if (HAS_MULTI_BITS(options->pickaxe_opts & DIFF_PICKAXE_KINDS_G_REGEX_MASK))
die(_("-G and --pickaxe-regex are mutually exclusive, use --pickaxe-regex with -S")); die(_("options '%s' and '%s' cannot be used together, use '%s' with '%s'"),
"-G", "--pickaxe-regex", "--pickaxe-regex", "-S");
if (HAS_MULTI_BITS(options->pickaxe_opts & DIFF_PICKAXE_KINDS_ALL_OBJFIND_MASK)) if (HAS_MULTI_BITS(options->pickaxe_opts & DIFF_PICKAXE_KINDS_ALL_OBJFIND_MASK))
die(_("--pickaxe-all and --find-object are mutually exclusive, use --pickaxe-all with -G and -S")); die(_("options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"),
"--pickaxe-all", "--find-object", "--pickaxe-all", "-G", "-S");
/* /*
* Most of the time we can say "there are changes" * Most of the time we can say "there are changes"

View File

@ -155,7 +155,7 @@ test_expect_success 'error conditions' '
test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err && test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err &&
test_must_fail git checkout --pathspec-from-file=list -- fileA.t 2>err && test_must_fail git checkout --pathspec-from-file=list -- fileA.t 2>err &&
test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git checkout --pathspec-file-nul 2>err && test_must_fail git checkout --pathspec-file-nul 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err

View File

@ -155,7 +155,7 @@ test_expect_success 'error conditions' '
test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err && test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err &&
test_must_fail git restore --pathspec-from-file=list --source=HEAD^1 -- fileA.t 2>err && test_must_fail git restore --pathspec-from-file=list --source=HEAD^1 -- fileA.t 2>err &&
test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git restore --pathspec-file-nul --source=HEAD^1 2>err && test_must_fail git restore --pathspec-file-nul --source=HEAD^1 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err && test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err &&

View File

@ -67,7 +67,7 @@ test_expect_success 'error conditions' '
echo fileA.t >list && echo fileA.t >list &&
test_must_fail git rm --pathspec-from-file=list -- fileA.t 2>err && test_must_fail git rm --pathspec-from-file=list -- fileA.t 2>err &&
test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git rm --pathspec-file-nul 2>err && test_must_fail git rm --pathspec-file-nul 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err && test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err &&

View File

@ -147,7 +147,7 @@ test_expect_success 'error conditions' '
test_i18ngrep -e "options .--pathspec-from-file. and .--edit. cannot be used together" err && test_i18ngrep -e "options .--pathspec-from-file. and .--edit. cannot be used together" err &&
test_must_fail git add --pathspec-from-file=list -- fileA.t 2>err && test_must_fail git add --pathspec-from-file=list -- fileA.t 2>err &&
test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git add --pathspec-file-nul 2>err && test_must_fail git add --pathspec-file-nul 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err && test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err &&

View File

@ -91,7 +91,7 @@ test_expect_success 'error conditions' '
test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err && test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err &&
test_must_fail git stash push --pathspec-from-file=list -- fileA.t 2>err && test_must_fail git stash push --pathspec-from-file=list -- fileA.t 2>err &&
test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git stash push --pathspec-file-nul 2>err && test_must_fail git stash push --pathspec-file-nul 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err

View File

@ -72,12 +72,12 @@ test_expect_success 'usage' '
grep "cannot be used together" err && grep "cannot be used together" err &&
test_expect_code 128 git log --pickaxe-all --find-object=HEAD 2>err && test_expect_code 128 git log --pickaxe-all --find-object=HEAD 2>err &&
grep "mutually exclusive" err grep "cannot be used together" err
' '
test_expect_success 'usage: --pickaxe-regex' ' test_expect_success 'usage: --pickaxe-regex' '
test_expect_code 128 git log -Gregex --pickaxe-regex 2>err && test_expect_code 128 git log -Gregex --pickaxe-regex 2>err &&
grep "mutually exclusive" err grep "cannot be used together" err
' '
test_expect_success 'usage: --no-pickaxe-regex' ' test_expect_success 'usage: --no-pickaxe-regex' '

View File

@ -46,7 +46,7 @@ test_expect_success 'disallows --bare with --origin' '
test_must_fail git clone -o foo --bare parent clone-bare-o 2>err && test_must_fail git clone -o foo --bare parent clone-bare-o 2>err &&
test_debug "cat err" && test_debug "cat err" &&
test_i18ngrep -e "--bare and --origin foo options are incompatible" err test_i18ngrep -e "options .--bare. and .--origin foo. cannot be used together" err
' '

View File

@ -163,7 +163,7 @@ test_expect_success 'error conditions' '
test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err && test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err &&
test_must_fail git reset --pathspec-from-file=list -- fileA.t 2>err && test_must_fail git reset --pathspec-from-file=list -- fileA.t 2>err &&
test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git reset --pathspec-file-nul 2>err && test_must_fail git reset --pathspec-file-nul 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err && test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err &&

View File

@ -359,14 +359,14 @@ test_expect_success '--fixup=reword: ignores staged changes' '
test_expect_success '--fixup=reword: error out with -m option' ' test_expect_success '--fixup=reword: error out with -m option' '
commit_for_rebase_autosquash_setup && commit_for_rebase_autosquash_setup &&
echo "fatal: cannot combine -m with --fixup:reword" >expect && echo "fatal: options '\''-m'\'' and '\''--fixup:reword'\'' cannot be used together" >expect &&
test_must_fail git commit --fixup=reword:HEAD~ -m "reword commit message" 2>actual && test_must_fail git commit --fixup=reword:HEAD~ -m "reword commit message" 2>actual &&
test_cmp expect actual test_cmp expect actual
' '
test_expect_success '--fixup=amend: error out with -m option' ' test_expect_success '--fixup=amend: error out with -m option' '
commit_for_rebase_autosquash_setup && commit_for_rebase_autosquash_setup &&
echo "fatal: cannot combine -m with --fixup:amend" >expect && echo "fatal: options '\''-m'\'' and '\''--fixup:amend'\'' cannot be used together" >expect &&
test_must_fail git commit --fixup=amend:HEAD~ -m "amend commit message" 2>actual && test_must_fail git commit --fixup=amend:HEAD~ -m "amend commit message" 2>actual &&
test_cmp expect actual test_cmp expect actual
' '
@ -421,8 +421,9 @@ test_expect_success 'amend! commit allows empty commit msg body with --allow-emp
test_fixup_reword_opt () { test_fixup_reword_opt () {
test_expect_success "--fixup=reword: incompatible with $1" " test_expect_success "--fixup=reword: incompatible with $1" "
echo 'fatal: reword option of --fixup is mutually exclusive with'\ echo 'fatal: reword option of '\''--fixup'\'' and' \
'--patch/--interactive/--all/--include/--only' >expect && ''\''--patch/--interactive/--all/--include/--only'\' \
'cannot be used together' >expect &&
test_must_fail git commit --fixup=reword:HEAD~ $1 2>actual && test_must_fail git commit --fixup=reword:HEAD~ $1 2>actual &&
test_cmp expect actual test_cmp expect actual
" "
@ -435,7 +436,7 @@ done
test_expect_success '--fixup=reword: give error with pathsec' ' test_expect_success '--fixup=reword: give error with pathsec' '
commit_for_rebase_autosquash_setup && commit_for_rebase_autosquash_setup &&
echo "fatal: cannot combine reword option of --fixup with path '\''foo'\''" >expect && echo "fatal: reword option of '\''--fixup'\'' and path '\''foo'\'' cannot be used together" >expect &&
test_must_fail git commit --fixup=reword:HEAD~ -- foo 2>actual && test_must_fail git commit --fixup=reword:HEAD~ -- foo 2>actual &&
test_cmp expect actual test_cmp expect actual
' '

View File

@ -150,7 +150,7 @@ test_expect_success 'error conditions' '
test_i18ngrep -e "options .--pathspec-from-file. and .-a. cannot be used together" err && test_i18ngrep -e "options .--pathspec-from-file. and .-a. cannot be used together" err &&
test_must_fail git commit --pathspec-from-file=list -m "Commit" -- fileA.t 2>err && test_must_fail git commit --pathspec-from-file=list -m "Commit" -- fileA.t 2>err &&
test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git commit --pathspec-file-nul -m "Commit" 2>err && test_must_fail git commit --pathspec-file-nul -m "Commit" 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err && test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err &&