From: "Jean-Noël Avila via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "Jeff King" <peff@peff.net>, "Johannes Sixt" <j6t@kdbg.org>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Jean-Noël Avila" <jn.avila@free.fr>
Subject: [PATCH v2 00/11] Factorization of messages with similar meaning
Date: Mon, 27 Dec 2021 23:23:46 +0000 [thread overview]
Message-ID: <pull.1088.v2.git.1640647437.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1088.git.1638514909.gitgitgadget@gmail.com>
This series is a meager attempt at rationalizing a small fraction of the
internationalized messages. Sorry in advance for the dull task of reviewing
these insipide patches.
Doing so has some positive effects:
* non-translatable constant strings are kept out of the way for translators
* messages with identical meaning are built identically
* the total number of messages to translate is decreased.
Changes since V1:
* took into account the comments, except for ref-filter.c where the
proposed refactoring is not obvious.
* added even more strings to the "cannot be used together" crowd.
Jean-Noël Avila (11):
i18n: refactor "foo and bar are mutually exclusive"
i18n: refactor "%s, %s and %s are mutually exclusive"
i18n: turn "options are incompatible" into "cannot be used together"
i18n: standardize "cannot open" and "cannot read"
i18n: tag.c factorize i18n strings
i18n: factorize "--foo requires --bar" and the like
i18n: factorize "no directory given for --foo"
i18n: refactor "unrecognized %(foo) argument" strings
i18n: factorize "--foo outside a repository"
i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom"
i18n: turn even more messages into "cannot be used together" ones
apply.c | 8 ++++----
archive.c | 8 ++++----
builtin/add.c | 14 +++++++-------
builtin/am.c | 4 ++--
builtin/branch.c | 2 +-
builtin/cat-file.c | 2 +-
builtin/checkout.c | 12 ++++++------
builtin/clone.c | 4 ++--
builtin/commit.c | 18 ++++++++++--------
builtin/describe.c | 6 +++---
builtin/diff-tree.c | 2 +-
builtin/difftool.c | 4 ++--
builtin/fast-export.c | 4 ++--
builtin/fetch.c | 8 ++++----
builtin/index-pack.c | 4 ++--
builtin/init-db.c | 4 ++--
builtin/log.c | 8 ++++----
builtin/ls-files.c | 2 +-
builtin/merge.c | 4 ++--
builtin/pack-objects.c | 2 +-
builtin/push.c | 8 ++++----
builtin/rebase.c | 10 +++++-----
builtin/repack.c | 4 ++--
builtin/reset.c | 10 +++++-----
builtin/rev-list.c | 4 ++--
builtin/rm.c | 4 ++--
builtin/show-branch.c | 4 ++--
builtin/stash.c | 8 ++++----
builtin/submodule--helper.c | 4 ++--
builtin/tag.c | 13 ++++++++-----
builtin/worktree.c | 6 +++---
diff.c | 8 ++++----
fetch-pack.c | 2 +-
git.c | 6 +++---
http-fetch.c | 4 ++--
range-diff.c | 2 +-
ref-filter.c | 22 +++++++++++-----------
revision.c | 22 +++++++++++-----------
t/t0001-init.sh | 6 +++---
t/t2025-checkout-no-overlay.sh | 2 +-
t/t2026-checkout-pathspec-file.sh | 6 +++---
t/t2072-restore-pathspec-file.sh | 4 ++--
t/t3431-rebase-fork-point.sh | 2 +-
t/t3601-rm-pathspec-file.sh | 2 +-
t/t3704-add-pathspec-file.sh | 8 ++++----
t/t3909-stash-pathspec-file.sh | 4 ++--
t/t4209-log-pickaxe.sh | 10 +++++-----
t/t5606-clone-options.sh | 4 ++--
t/t7107-reset-pathspec-file.sh | 4 ++--
t/t7500-commit-template-squash-signoff.sh | 11 ++++++-----
t/t7526-commit-pathspec-file.sh | 8 ++++----
51 files changed, 169 insertions(+), 163 deletions(-)
base-commit: 2ae0a9cb8298185a94e5998086f380a355dd8907
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1088%2Fjnavila%2Fi18n-refactor-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1088/jnavila/i18n-refactor-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1088
Range-diff vs v1:
1: 476eb77aff6 ! 1: 71699eaa27b i18n: refactor "foo and bar are mutually exclusive"
@@ Metadata
## Commit message ##
i18n: refactor "foo and bar are mutually exclusive"
- Use static strings for constant parts of the sentences.
+ Use static strings for constant parts of the sentences. They are all
+ turned into "cannot be used together".
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
@@ builtin/checkout.c: static int checkout_main(int argc, const char **argv, const
if (opts->overlay_mode == 1 && opts->patch_mode)
- die(_("-p and --overlay are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "-p", "--overlay");
++ die(_("options '%s' and '%s' cannot be used together"), "-p", "--overlay");
if (opts->checkout_index >= 0 || opts->checkout_worktree >= 0) {
if (opts->checkout_index < 0)
@@ builtin/diff-tree.c: int cmd_diff_tree(int argc, const char **argv, const char *
if (read_stdin && merge_base)
- die(_("--stdin and --merge-base are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "--stdin", "--merge-base");
++ die(_("options '%s' and '%s' cannot be used together"), "--stdin", "--merge-base");
if (merge_base && opt->pending.nr != 2)
die(_("--merge-base only works with two commits"));
@@ builtin/diff-tree.c: int cmd_diff_tree(int argc, const char **argv, const char *
## builtin/fetch.c ##
@@ builtin/fetch.c: int cmd_fetch(int argc, const char **argv, const char *prefix)
if (deepen_relative < 0)
- die(_("Negative depth in --deepen is not supported"));
+ die(_("negative depth in --deepen is not supported"));
if (depth)
- die(_("--deepen and --depth are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "--deepen", "--depth");
++ die(_("options '%s' and '%s' cannot be used together"), "--deepen", "--depth");
depth = xstrfmt("%d", deepen_relative);
}
if (unshallow) {
+ if (depth)
+- die(_("--depth and --unshallow cannot be used together"));
++ die(_("options '%s' and '%s' cannot be used together"), "--depth", "--unshallow");
+ else if (!is_repository_shallow(the_repository))
+ die(_("--unshallow on a complete repository does not make sense"));
+ else
## builtin/init-db.c ##
@@ builtin/init-db.c: int cmd_init_db(int argc, const char **argv, const char *prefix)
@@ builtin/init-db.c: int cmd_init_db(int argc, const char **argv, const char *pref
if (real_git_dir && is_bare_repository_cfg == 1)
- die(_("--separate-git-dir and --bare are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "--separate-git-dir", "--bare");
++ die(_("options '%s' and '%s' cannot be used together"), "--separate-git-dir", "--bare");
if (real_git_dir && !is_absolute_path(real_git_dir))
real_git_dir = real_pathdup(real_git_dir, 1);
@@ builtin/log.c: int cmd_format_patch(int argc, const char **argv, const char *pre
if (numbered && keep_subject)
- die(_("-n and -k are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "-n", "-k");
++ die(_("options '%s' and '%s' cannot be used together"), "-n", "-k");
if (keep_subject && subject_prefix)
- die(_("--subject-prefix/--rfc and -k are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "--subject-prefix/--rfc", "-k");
++ die(_("options '%s' and '%s' cannot be used together"), "--subject-prefix/--rfc", "-k");
rev.preserve_subject = keep_subject;
argc = setup_revisions(argc, argv, &rev, &s_r_opt);
@@ builtin/submodule--helper.c: static int module_summary(int argc, const char **ar
if (files) {
if (cached)
- die(_("--cached and --files are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "--cached", "--files");
++ die(_("options '%s' and '%s' cannot be used together"), "--cached", "--files");
diff_cmd = DIFF_FILES;
}
@@ builtin/submodule--helper.c: static int module_set_branch(int argc, const char *
if (opt_branch && opt_default)
- die(_("--branch and --default are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "--branch", "--default");
++ die(_("options '%s' and '%s' cannot be used together"), "--branch", "--default");
if (argc != 1 || !(path = argv[0]))
usage_with_options(usage, options);
@@ builtin/worktree.c: static int list(int ac, const char **av, const char *prefix)
usage_with_options(worktree_usage, options);
else if (verbose && porcelain)
- die(_("--verbose and --porcelain are mutually exclusive"));
-+ die(_("%s and %s are mutually exclusive"), "--verbose", "--porcelain");
++ die(_("options '%s' and '%s' cannot be used together"), "--verbose", "--porcelain");
else {
struct worktree **worktrees = get_worktrees();
int path_maxlen = 0, abbrev = DEFAULT_ABBREV, i;
@@ range-diff.c: int show_range_diff(const char *range1, const char *range2,
if (range_diff_opts->left_only && range_diff_opts->right_only)
- res = error(_("--left-only and --right-only are mutually exclusive"));
-+ res = error(_("%s and %s are mutually exclusive"), "--left-only", "--right-only");
++ res = error(_("options '%s' and '%s' cannot be used together"), "--left-only", "--right-only");
if (!res && read_patches(range1, &branch1, range_diff_opts->other_arg))
res = error(_("could not parse log for '%s'"), range1);
+
+ ## t/t0001-init.sh ##
+@@ t/t0001-init.sh: test_expect_success 'init with separate gitdir' '
+
+ test_expect_success 'explicit bare & --separate-git-dir incompatible' '
+ test_must_fail git init --bare --separate-git-dir goop.git bare.git 2>err &&
+- test_i18ngrep "mutually exclusive" err
++ test_i18ngrep "cannot be used together" err
+ '
+
+ test_expect_success 'implicit bare & --separate-git-dir incompatible' '
+
+ ## t/t2025-checkout-no-overlay.sh ##
+@@ t/t2025-checkout-no-overlay.sh: test_expect_success 'checkout --no-overlay removing last file from directory' '
+
+ test_expect_success 'checkout -p --overlay is disallowed' '
+ test_must_fail git checkout -p --overlay HEAD 2>actual &&
+- test_i18ngrep "fatal: -p and --overlay are mutually exclusive" actual
++ test_i18ngrep "fatal: options .-p. and .--overlay. cannot be used together" actual
+ '
+
+ test_expect_success '--no-overlay --theirs with D/F conflict deletes file' '
+
+ ## t/t4209-log-pickaxe.sh ##
+@@ t/t4209-log-pickaxe.sh: test_expect_success 'usage' '
+ test_i18ngrep "switch.*requires a value" err &&
+
+ test_expect_code 128 git log -Gregex -Sstring 2>err &&
+- grep "mutually exclusive" err &&
++ grep "cannot be used together" err &&
+
+ test_expect_code 128 git log -Gregex --find-object=HEAD 2>err &&
+- grep "mutually exclusive" err &&
++ grep "cannot be used together" err &&
+
+ test_expect_code 128 git log -Sstring --find-object=HEAD 2>err &&
+- grep "mutually exclusive" err &&
++ grep "cannot be used together" err &&
+
+ test_expect_code 128 git log --pickaxe-all --find-object=HEAD 2>err &&
+ grep "mutually exclusive" err
2: 32c7799388b ! 2: be4e8757f38 i18n: refactor "%s, %s and %s are mutually exclusive"
@@ Metadata
## Commit message ##
i18n: refactor "%s, %s and %s are mutually exclusive"
- Use placeholders for constant tokens.
+ Use placeholders for constant tokens. The strings are turned into
+ "cannot be used together"
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
@@ builtin/difftool.c: int cmd_difftool(int argc, const char **argv, const char *pr
if (use_gui_tool + !!difftool_cmd + !!extcmd > 1)
- die(_("--gui, --tool and --extcmd are mutually exclusive"));
-+ die(_("%s, %s and %s are mutually exclusive"), "--gui", "--tool", "--extcmd");
++ die(_("options '%s', '%s' and '%s' cannot be used together"), "--gui", "--tool", "--extcmd");
if (use_gui_tool)
setenv("GIT_MERGETOOL_GUI", "true", 1);
@@ builtin/log.c: int cmd_format_patch(int argc, const char **argv, const char *pre
if (use_stdout + rev.diffopt.close_file + !!output_directory > 1)
- die(_("--stdout, --output, and --output-directory are mutually exclusive"));
-+ die(_("%s, %s and %s are mutually exclusive"), "--stdout", "--output", "--output-directory");
++ die(_("options '%s', '%s' and '%s' cannot be used together"), "--stdout", "--output", "--output-directory");
if (use_stdout) {
setup_pager();
@@ builtin/worktree.c: static int add(int ac, const char **av, const char *prefix)
ac = parse_options(ac, av, prefix, options, worktree_usage, 0);
if (!!opts.detach + !!new_branch + !!new_branch_force > 1)
- die(_("-b, -B, and --detach are mutually exclusive"));
-+ die(_("%s, %s and %s are mutually exclusive"), "-b", "-B", "--detach");
++ die(_("options '%s', '%s' and '%s' cannot be used together"), "-b", "-B", "--detach");
if (lock_reason && !keep_locked)
die(_("--reason requires --lock"));
if (lock_reason)
@@ diff.c: void diff_setup_done(struct diff_options *options)
if (HAS_MULTI_BITS(options->pickaxe_opts & DIFF_PICKAXE_KINDS_MASK))
- die(_("-G, -S and --find-object are mutually exclusive"));
-+ die(_("%s, %s and %s are mutually exclusive"), "-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))
die(_("-G and --pickaxe-regex are mutually exclusive, use --pickaxe-regex with -S"));
3: 46e94ef3ac9 ! 3: 53bad588bfc i18n: turn "options are incompatible" into "are mutually exclusive"
@@ Metadata
Author: Jean-Noël Avila <jn.avila@free.fr>
## Commit message ##
- i18n: turn "options are incompatible" into "are mutually exclusive"
+ i18n: turn "options are incompatible" into "cannot be used together"
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
@@ apply.c: int check_apply_state(struct apply_state *state, int force_apply)
if (state->apply_with_reject && state->threeway)
- return error(_("--reject and --3way cannot be used together."));
-+ return error(_("%s and %s are mutually exclusive"),"--reject", "--3way");
++ return error(_("options '%s' and '%s' cannot be used together"),"--reject", "--3way");
if (state->threeway) {
if (is_not_gitdir)
return error(_("--3way outside a repository"));
@@ archive.c: static int parse_archive_args(int argc, const char **argv,
die(_("Unexpected option --output"));
if (is_remote && args->extra_files.nr)
- die(_("Options --add-file and --remote cannot be used together"));
-+ die(_("%s and %s are mutually exclusive"), "--add-file", "--remote");
++ die(_("options '%s' and '%s' cannot be used together"), "--add-file", "--remote");
if (!base)
base = "";
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix)
if (add_interactive) {
if (show_only)
- die(_("--dry-run is incompatible with --interactive/--patch"));
-+ die(_("%s and %s are mutually exclusive"), "--dry-run", "--interactive/--patch");
++ die(_("options '%s' and '%s' cannot be used together"), "--dry-run", "--interactive/--patch");
if (pathspec_from_file)
- die(_("--pathspec-from-file is incompatible with --interactive/--patch"));
-+ die(_("%s and %s are mutually exclusive"), "--pathspec-from-file", "--interactive/--patch");
++ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--interactive/--patch");
exit(interactive_add(argv + 1, prefix, patch_interactive));
}
if (legacy_stash_p) {
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix)
if (edit_interactive) {
if (pathspec_from_file)
- die(_("--pathspec-from-file is incompatible with --edit"));
-+ die(_("%s and %s are mutually exclusive"), "--pathspec-from-file", "--edit");
++ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--edit");
return(edit_patch(argc, argv, prefix));
}
argc--;
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix)
if (addremove && take_worktree_changes)
- die(_("-A and -u are mutually incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "-A", "-u");
++ die(_("options '%s' and '%s' cannot be used together"), "-A", "-u");
if (!show_only && ignore_missing)
die(_("Option --ignore-missing can only be used together with --dry-run"));
@@ builtin/branch.c: int cmd_branch(int argc, const char **argv, const char *prefix
if (filter.verbose) {
if (explicitly_enable_column(colopts))
- die(_("--column and --verbose are incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "--column", "--verbose");
++ die(_("options '%s' and '%s' cannot be used together"), "--column", "--verbose");
colopts = 0;
}
@@ builtin/checkout.c: static int checkout_main(int argc, const char **argv, const
if (opts->force_detach)
- die(_("--pathspec-from-file is incompatible with --detach"));
-+ die(_("%s and %s are mutually exclusive"), "--pathspec-from-file", "--detach");
++ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--detach");
if (opts->patch_mode)
- die(_("--pathspec-from-file is incompatible with --patch"));
-+ die(_("%s and %s are mutually exclusive"), "--pathspec-from-file", "--patch");
++ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--patch");
parse_pathspec_file(&opts->pathspec, 0,
0,
@@ builtin/clone.c: int cmd_clone(int argc, const char **argv, const char *prefix)
option_origin);
if (real_git_dir)
- die(_("--bare and --separate-git-dir are incompatible."));
-+ die(_("%s and %s are mutually exclusive"), "--bare", "--separate-git-dir");
++ die(_("options '%s' and '%s' cannot be used together"), "--bare", "--separate-git-dir");
option_no_checkout = 1;
}
@@ builtin/commit.c: static const char *prepare_index(const char **argv, const char
if (pathspec_from_file) {
if (interactive)
- die(_("--pathspec-from-file is incompatible with --interactive/--patch"));
-+ die(_("%s and %s are mutually exclusive"), "--pathspec-from-file", "--interactive/--patch");
++ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--interactive/--patch");
if (all)
- die(_("--pathspec-from-file with -a does not make sense"));
+- die(_("--pathspec-from-file with -a does not make sense"));
++ die(_("options '%s' and '%s' cannot be used together"),"--pathspec-from-file", "-a");
+
+ if (pathspec.nr)
+ die(_("--pathspec-from-file is incompatible with pathspec arguments"));
@@ builtin/commit.c: static void finalize_deferred_config(struct wt_status *s)
status_format == STATUS_FORMAT_UNSPECIFIED)
status_format = STATUS_FORMAT_PORCELAIN;
else if (status_format == STATUS_FORMAT_LONG)
- die(_("--long and -z are incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "--long", "-z");
++ die(_("options '%s' and '%s' cannot be used together"), "--long", "-z");
}
if (use_deferred_config && status_format == STATUS_FORMAT_UNSPECIFIED)
@@ builtin/describe.c: int cmd_describe(int argc, const char **argv, const char *pr
if (longformat && abbrev == 0)
- die(_("--long is incompatible with --abbrev=0"));
-+ die(_("%s and %s are mutually exclusive"), "--long", "--abbrev=0");
++ die(_("options '%s' and '%s' cannot be used together"), "--long", "--abbrev=0");
if (contains) {
struct string_list_item *item;
@@ builtin/difftool.c: int cmd_difftool(int argc, const char **argv, const char *pr
setenv(GIT_WORK_TREE_ENVIRONMENT, absolute_path(get_git_work_tree()), 1);
} else if (dir_diff)
- die(_("--dir-diff is incompatible with --no-index"));
-+ die(_("%s and %s are mutually exclusive"), "--dir-diff", "--no-index");
++ die(_("options '%s' and '%s' cannot be used together"), "--dir-diff", "--no-index");
if (use_gui_tool + !!difftool_cmd + !!extcmd > 1)
- die(_("%s, %s and %s are mutually exclusive"), "--gui", "--tool", "--extcmd");
+ die(_("options '%s', '%s' and '%s' cannot be used together"), "--gui", "--tool", "--extcmd");
## builtin/fast-export.c ##
@@ builtin/fast-export.c: int cmd_fast_export(int argc, const char **argv, const char *prefix)
@@ builtin/fast-export.c: int cmd_fast_export(int argc, const char **argv, const ch
if (import_filename && import_filename_if_exists)
- die(_("Cannot pass both --import-marks and --import-marks-if-exists"));
-+ die(_("%s and %s are mutually exclusive"), "--import-marks", "--import-marks-if-exists");
++ die(_("options '%s' and '%s' cannot be used together"), "--import-marks", "--import-marks-if-exists");
if (import_filename)
import_marks(import_filename, 0);
else if (import_filename_if_exists)
@@ builtin/index-pack.c: int cmd_index_pack(int argc, const char **argv, const char
die(_("--stdin requires a git repository"));
if (from_stdin && hash_algo)
- die(_("--object-format cannot be used with --stdin"));
-+ die(_("%s and %s are mutually exclusive"), "--object-format", "--stdin");
++ die(_("options '%s' and '%s' cannot be used together"), "--object-format", "--stdin");
if (!index_name && pack_name)
index_name = derive_filename(pack_name, "pack", "idx", &index_name_buf);
+ ## builtin/ls-files.c ##
+@@ builtin/ls-files.c: int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
+ * would not make any sense with this option.
+ */
+ if (show_stage || show_unmerged)
+- die("ls-files --with-tree is incompatible with -s or -u");
++ die(_("options '%s' and '%s' cannot be used together"), "ls-files --with-tree", "-s/-u");
+ overlay_tree_on_index(the_repository->index, with_tree, max_prefix);
+ }
+
+
+ ## builtin/merge.c ##
+@@ builtin/merge.c: int cmd_merge(int argc, const char **argv, const char *prefix)
+
+ if (squash) {
+ if (fast_forward == FF_NO)
+- die(_("You cannot combine --squash with --no-ff."));
++ die(_("options '%s' and '%s' cannot be used together"), "--squash", "--no-ff.");
+ if (option_commit > 0)
+- die(_("You cannot combine --squash with --commit."));
++ die(_("options '%s' and '%s' cannot be used together"), "--squash", "--commit.");
+ /*
+ * squash can now silently disable option_commit - this is not
+ * a problem as it is only overriding the default, not a user
+
## builtin/pack-objects.c ##
@@ builtin/pack-objects.c: int cmd_pack_objects(int argc, const char **argv, const char *prefix)
die(_("--thin cannot be used to build an indexable pack"));
if (keep_unreachable && unpack_unreachable)
- die(_("--keep-unreachable and --unpack-unreachable are incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "--keep-unreachable", "--unpack-unreachable");
++ die(_("options '%s' and '%s' cannot be used together"), "--keep-unreachable", "--unpack-unreachable");
if (!rev_list_all || !rev_list_reflog || !rev_list_index)
unpack_unreachable_expiration = 0;
@@ builtin/push.c: int cmd_push(int argc, const char **argv, const char *prefix)
if (deleterefs && (tags || (flags & (TRANSPORT_PUSH_ALL | TRANSPORT_PUSH_MIRROR))))
- die(_("--delete is incompatible with --all, --mirror and --tags"));
-+ die(_("%s and %s are mutually exclusive"), "--delete", "--all/--mirror/--tags");
++ die(_("options '%s' and '%s' cannot be used together"), "--delete", "--all/--mirror/--tags");
if (deleterefs && argc < 2)
die(_("--delete doesn't make sense without any refs"));
@@ builtin/push.c: int cmd_push(int argc, const char **argv, const char *prefix)
if (flags & TRANSPORT_PUSH_ALL) {
if (tags)
- die(_("--all and --tags are incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "--all", "--tags");
++ die(_("options '%s' and '%s' cannot be used together"), "--all", "--tags");
if (argc >= 2)
die(_("--all can't be combined with refspecs"));
}
if (flags & TRANSPORT_PUSH_MIRROR) {
if (tags)
- die(_("--mirror and --tags are incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "--mirror", "--tags");
++ die(_("options '%s' and '%s' cannot be used together"), "--mirror", "--tags");
if (argc >= 2)
die(_("--mirror can't be combined with refspecs"));
}
if ((flags & TRANSPORT_PUSH_ALL) && (flags & TRANSPORT_PUSH_MIRROR))
- die(_("--all and --mirror are incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "--all", "--mirror");
++ die(_("options '%s' and '%s' cannot be used together"), "--all", "--mirror");
if (!is_empty_cas(&cas) && (flags & TRANSPORT_PUSH_FORCE_IF_INCLUDES))
cas.use_force_if_includes = 1;
+ ## builtin/rebase.c ##
+@@ builtin/rebase.c: int cmd_rebase(int argc, const char **argv, const char *prefix)
+
+ if (keep_base) {
+ if (options.onto_name)
+- die(_("cannot combine '--keep-base' with '--onto'"));
++ die(_("options '%s' and '%s' cannot be used together"),"--keep-base", "--onto");
+ if (options.root)
+- die(_("cannot combine '--keep-base' with '--root'"));
++ die(_("options '%s' and '%s' cannot be used together"),"--keep-base", "--root");
+ }
+
+ if (options.root && options.fork_point > 0)
+- die(_("cannot combine '--root' with '--fork-point'"));
++ die(_("options '%s' and '%s' cannot be used together"), "--root", "--fork-point");
+
+ if (action != ACTION_NONE && !in_progress)
+ die(_("No rebase in progress?"));
+
## builtin/repack.c ##
@@ builtin/repack.c: int cmd_repack(int argc, const char **argv, const char *prefix)
if (keep_unreachable &&
(unpack_unreachable || (pack_everything & LOOSEN_UNREACHABLE)))
- die(_("--keep-unreachable and -A are incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "--keep-unreachable", "-A");
++ die(_("options '%s' and '%s' cannot be used together"), "--keep-unreachable", "-A");
if (write_bitmaps < 0) {
if (!write_midx &&
@@ builtin/repack.c: int cmd_repack(int argc, const char **argv, const char *prefix
if (geometric_factor) {
if (pack_everything)
- die(_("--geometric is incompatible with -A, -a"));
-+ die(_("%s and %s are mutually exclusive"),"--geometric", "-A/-a");
++ die(_("options '%s' and '%s' cannot be used together"),"--geometric", "-A/-a");
init_pack_geometry(&geometry);
split_pack_geometry(geometry, geometric_factor);
}
@@ builtin/reset.c: int cmd_reset(int argc, const char **argv, const char *prefix)
if (pathspec_from_file) {
if (patch_mode)
- die(_("--pathspec-from-file is incompatible with --patch"));
-+ die(_("%s and %s are mutually exclusive"), "--pathspec-from-file", "--patch");
++ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--patch");
if (pathspec.nr)
die(_("--pathspec-from-file is incompatible with pathspec arguments"));
@@ builtin/reset.c: int cmd_reset(int argc, const char **argv, const char *prefix)
if (patch_mode) {
if (reset_type != NONE)
- die(_("--patch is incompatible with --{hard,mixed,soft}"));
-+ die(_("%s and %s are mutually exclusive"), "--patch", "--{hard,mixed,soft}");
++ die(_("options '%s' and '%s' cannot be used together"), "--patch", "--{hard,mixed,soft}");
trace2_cmd_mode("patch-interactive");
return run_add_interactive(rev, "--patch=reset", &pathspec);
}
+ ## builtin/rev-list.c ##
+@@ builtin/rev-list.c: int cmd_rev_list(int argc, const char **argv, const char *prefix)
+ const char *arg = argv[i];
+ if (skip_prefix(arg, "--missing=", &arg)) {
+ if (revs.exclude_promisor_objects)
+- die(_("cannot combine --exclude-promisor-objects and --missing"));
++ die(_("options '%s' and '%s' cannot be used together"),"--exclude-promisor-objects", "--missing");
+ if (parse_missing_action_value(arg))
+ break;
+ }
+
+ ## builtin/show-branch.c ##
+@@ builtin/show-branch.c: int cmd_show_branch(int ac, const char **av, const char *prefix)
+ *
+ * Also --all and --remotes do not make sense either.
+ */
+- die(_("--reflog is incompatible with --all, --remotes, "
+- "--independent or --merge-base"));
++ die(_("options '%s' and '%s' cannot be used together"), "--reflog",
++ "--all/--remotes/--independent/--merge-base");
+ }
+
+ /* If nothing is specified, show all branches by default */
+
## builtin/stash.c ##
@@ builtin/stash.c: static int push_stash(int argc, const char **argv, const char *prefix,
if (pathspec_from_file) {
if (patch_mode)
- die(_("--pathspec-from-file is incompatible with --patch"));
-+ die(_("%s and %s are mutually exclusive"), "--pathspec-from-file", "--patch");
++ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--patch");
+
+ if (only_staged)
+- die(_("--pathspec-from-file is incompatible with --staged"));
++ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--staged");
if (ps.nr)
die(_("--pathspec-from-file is incompatible with pathspec arguments"));
@@ builtin/tag.c: int cmd_tag(int argc, const char **argv, const char *prefix)
if (cmdmode == 'l' && filter.lines != -1) {
if (explicitly_enable_column(colopts))
- die(_("--column and -n are incompatible"));
-+ die(_("%s and %s are mutually exclusive"), "--column", "-n");
++ die(_("options '%s' and '%s' cannot be used together"), "--column", "-n");
colopts = 0;
}
- if (!sorting)
+ sorting = ref_sorting_options(&sorting_options);
## revision.c ##
@@ revision.c: static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
@@ revision.c: static int handle_revision_opt(struct rev_info *revs, int argc, cons
} else if (!strcmp(arg, "--right-only")) {
if (revs->left_only)
- die("--right-only is incompatible with --left-only");
-+ die(_("%s and %s are mutually exclusive"), "--right-only", "--left-only");
++ die(_("options '%s' and '%s' cannot be used together"), "--right-only", "--left-only");
revs->right_only = 1;
} else if (!strcmp(arg, "--cherry")) {
if (revs->left_only)
- die("--cherry is incompatible with --left-only");
-+ die(_("%s and %s are mutually exclusive"), "--cherry", "--left-only");
++ die(_("options '%s' and '%s' cannot be used together"), "--cherry", "--left-only");
revs->cherry_mark = 1;
revs->right_only = 1;
revs->max_parents = 1;
@@ revision.c: static int handle_revision_opt(struct rev_info *revs, int argc, cons
} else if (!strcmp(arg, "--cherry-mark")) {
if (revs->cherry_pick)
- die("--cherry-mark is incompatible with --cherry-pick");
-+ die(_("%s and %s are mutually exclusive"), "--cherry-mark", "--cherry-pick");
++ die(_("options '%s' and '%s' cannot be used together"), "--cherry-mark", "--cherry-pick");
revs->cherry_mark = 1;
revs->limited = 1; /* needs limit_list() */
} else if (!strcmp(arg, "--cherry-pick")) {
if (revs->cherry_mark)
- die("--cherry-pick is incompatible with --cherry-mark");
-+ die(_("%s and %s are mutually exclusive"), "--cherry-pick", "--cherry-mark");
++ die(_("options '%s' and '%s' cannot be used together"), "--cherry-pick", "--cherry-mark");
revs->cherry_pick = 1;
revs->limited = 1;
} else if (!strcmp(arg, "--objects")) {
@@ revision.c: static int handle_revision_opt(struct rev_info *revs, int argc, cons
}
if (revs->graph && revs->track_linear)
- die("--show-linear-break and --graph are incompatible");
-+ die(_("%s and %s are mutually exclusive"), "--show-linear-break", "--graph");
++ die(_("options '%s' and '%s' cannot be used together"), "--show-linear-break", "--graph");
return 1;
}
@@ revision.c: int setup_revisions(int argc, const char **argv, struct rev_info *re
if (revs->reverse && revs->reflog_info)
- die("cannot combine --reverse with --walk-reflogs");
-+ die(_("%s and %s are mutually exclusive"), "--reverse", "--walk-reflogs");
++ 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)
- die("cannot combine --parents and --children");
-+ die(_("%s and %s are mutually exclusive"), "--parents", "--children");
++ die(_("options '%s' and '%s' cannot be used together"), "--parents", "--children");
/*
* Limitations on the graph functionality
*/
if (revs->reverse && revs->graph)
- die("cannot combine --reverse with --graph");
-+ die(_("%s and %s are mutually exclusive"), "--reverse", "--graph");
++ die(_("options '%s' and '%s' cannot be used together"), "--reverse", "--graph");
if (revs->reflog_info && revs->graph)
- die("cannot combine --walk-reflogs with --graph");
-+ die(_("%s and %s are mutually exclusive"), "--walk-reflogs", "--graph");
++ die(_("options '%s' and '%s' cannot be used together"), "--walk-reflogs", "--graph");
if (revs->no_walk && revs->graph)
- die("cannot combine --no-walk with --graph");
-+ die(_("%s and %s are mutually exclusive"), "--no-walk", "--graph");
++ die(_("options '%s' and '%s' cannot be used together"), "--no-walk", "--graph");
if (!revs->reflog_info && revs->grep_filter.use_reflog_filter)
- die("cannot use --grep-reflog without --walk-reflogs");
+ die(_("%s requires %s"), "--grep-reflog", "--walk-reflogs");
@@ t/t2026-checkout-pathspec-file.sh: test_expect_success 'error conditions' '
test_must_fail git checkout --pathspec-from-file=list --detach 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --detach" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --detach are mutually exclusive" err &&
++ test_i18ngrep -e "options .--pathspec-from-file. and .--detach. cannot be used together" err &&
test_must_fail git checkout --pathspec-from-file=list --patch 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --patch" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --patch are mutually exclusive" 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_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err &&
@@ t/t2072-restore-pathspec-file.sh: test_expect_success 'error conditions' '
test_must_fail git restore --pathspec-from-file=list --patch --source=HEAD^1 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --patch" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --patch are mutually exclusive" 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_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err &&
@@ t/t3704-add-pathspec-file.sh: test_expect_success 'error conditions' '
test_must_fail git add --pathspec-from-file=list --interactive 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --interactive/--patch" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --interactive/--patch are mutually exclusive" err &&
++ test_i18ngrep -e "options .--pathspec-from-file. and .--interactive/--patch. cannot be used together" err &&
test_must_fail git add --pathspec-from-file=list --patch 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --interactive/--patch" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --interactive/--patch are mutually exclusive" err &&
++ test_i18ngrep -e "options .--pathspec-from-file. and .--interactive/--patch. cannot be used together" err &&
test_must_fail git add --pathspec-from-file=list --edit 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --edit" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --edit are mutually exclusive" 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_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err &&
@@ t/t3909-stash-pathspec-file.sh: test_expect_success 'error conditions' '
test_must_fail git stash push --pathspec-from-file=list --patch 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --patch" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --patch are mutually exclusive" 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_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err &&
@@ t/t5606-clone-options.sh: test_expect_success 'disallows --bare with --separate-
test_must_fail git clone --bare --separate-git-dir dot-git-destiation parent clone-bare-sgd 2>err &&
test_debug "cat err" &&
- test_i18ngrep -e "--bare and --separate-git-dir are incompatible" err
-+ test_i18ngrep -e "--bare and --separate-git-dir are mutually exclusive" err
++ test_i18ngrep -e "options .--bare. and .--separate-git-dir. cannot be used together" err
'
@@ t/t7107-reset-pathspec-file.sh: test_expect_success 'error conditions' '
test_must_fail git reset --pathspec-from-file=list --patch 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --patch" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --patch are mutually exclusive" 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_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err &&
@@ t/t7526-commit-pathspec-file.sh: test_expect_success 'error conditions' '
test_must_fail git commit --pathspec-from-file=list --interactive -m "Commit" 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --interactive/--patch" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --interactive/--patch are mutually exclusive" err &&
++ test_i18ngrep -e "options .--pathspec-from-file. and .--interactive/--patch. cannot be used together" err &&
test_must_fail git commit --pathspec-from-file=list --patch -m "Commit" 2>err &&
- test_i18ngrep -e "--pathspec-from-file is incompatible with --interactive/--patch" err &&
-+ test_i18ngrep -e "--pathspec-from-file and --interactive/--patch are mutually exclusive" err &&
++ test_i18ngrep -e "options .--pathspec-from-file. and .--interactive/--patch. cannot be used together" err &&
test_must_fail git commit --pathspec-from-file=list --all -m "Commit" 2>err &&
test_i18ngrep -e "--pathspec-from-file with -a does not make sense" err &&
4: d408cecc85f = 4: 88dfde62eda i18n: standardize "cannot open" and "cannot read"
5: b67f0e492e0 ! 5: 6d89c23a248 i18n: tag.c factorize i18n strings
@@ Commit message
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
## builtin/tag.c ##
+@@ builtin/tag.c: int cmd_tag(int argc, const char **argv, const char *prefix)
+ OPT_END()
+ };
+ int ret = 0;
++ const char *only_in_list = NULL;
+
+ setup_ref_filter_porcelain_msg();
+
@@ builtin/tag.c: int cmd_tag(int argc, const char **argv, const char *prefix)
goto cleanup;
}
if (filter.lines != -1)
- die(_("-n option is only allowed in list mode"));
-+ die(_("%s option is only allowed in list mode"), "-n");
++ only_in_list = "-n";
if (filter.with_commit)
- die(_("--contains option is only allowed in list mode"));
-+ die(_("%s option is only allowed in list mode"), "--contains");
++ only_in_list = "--contains";
if (filter.no_commit)
- die(_("--no-contains option is only allowed in list mode"));
-+ die(_("%s option is only allowed in list mode"), "--no-contains");
++ only_in_list = "--no-contains";
if (filter.points_at.nr)
- die(_("--points-at option is only allowed in list mode"));
-+ die(_("%s option is only allowed in list mode"), "--points-at");
++ only_in_list = "--points-at";
++ if (only_in_list)
++ die("the '%s' option is only allowed in list mode", only_in_list);
if (filter.reachable_from || filter.unreachable_from)
die(_("--merged and --no-merged options are only allowed in list mode"));
if (cmdmode == 'd') {
6: 653e33f7995 ! 6: f83ed5cb799 i18n: factorize "--foo requires --bar" and the like
@@ archive.c: static int parse_archive_args(int argc, const char **argv,
## builtin/add.c ##
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix)
- die(_("%s and %s are mutually exclusive"), "-A", "-u");
+ die(_("options '%s' and '%s' cannot be used together"), "-A", "-u");
if (!show_only && ignore_missing)
- die(_("Option --ignore-missing can only be used together with --dry-run"));
@@ builtin/reset.c: int cmd_reset(int argc, const char **argv, const char *prefix)
- die(_("-N can only be used with --mixed"));
+ die(_("%s requires %s"), "-N", "--mixed");
- /* Soft reset does not touch the index file nor the working tree
- * at all, but requires them in a good order. Other resets reset
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
## builtin/rm.c ##
@@ builtin/rm.c: int cmd_rm(int argc, const char **argv, const char *prefix)
@@ builtin/stash.c: static int push_stash(int argc, const char **argv, const char *
## builtin/worktree.c ##
@@ builtin/worktree.c: static int add(int ac, const char **av, const char *prefix)
if (!!opts.detach + !!new_branch + !!new_branch_force > 1)
- die(_("%s, %s and %s are mutually exclusive"), "-b", "-B", "--detach");
+ die(_("options '%s', '%s' and '%s' cannot be used together"), "-b", "-B", "--detach");
if (lock_reason && !keep_locked)
- die(_("--reason requires --lock"));
+ die(_("%s requires %s"), "--reason", "--lock");
7: 4b0e1ff29cb = 7: 2b7d558f8f9 i18n: factorize "no directory given for --foo"
8: 4c2df4522a1 ! 8: 5f80ac2fa20 i18n: refactor "unrecognized %(foo) argument" strings
@@ ref-filter.c: static int raw_atom_parser(struct ref_format *format, struct used_
return 0;
}
+@@ ref-filter.c: static int oid_atom_parser(struct ref_format *format, struct used_atom *atom,
+ if (atom->u.oid.length < MINIMUM_ABBREV)
+ atom->u.oid.length = MINIMUM_ABBREV;
+ } else
+- return strbuf_addf_ret(err, -1, _("unrecognized argument '%s' in %%(%s)"), arg, atom->name);
++ return strbuf_addf_ret(err, -1, _("unrecognized %%(%s) argument: %s"), atom->name, arg);
+ return 0;
+ }
+
@@ ref-filter.c: static int align_atom_parser(struct ref_format *format, struct used_atom *atom,
else if ((position = parse_align_position(s)) >= 0)
align->position = position;
9: 6196bccf086 ! 9: 9dd53960c42 i18n: factorize "--foo outside a repository"
@@ Commit message
## apply.c ##
@@ apply.c: int check_apply_state(struct apply_state *state, int force_apply)
- return error(_("%s and %s are mutually exclusive"),"--reject", "--3way");
+ return error(_("options '%s' and '%s' cannot be used together"),"--reject", "--3way");
if (state->threeway) {
if (is_not_gitdir)
- return error(_("--3way outside a repository"));
10: 7d97cbe7e9a = 10: a575f566f2a i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom"
-: ----------- > 11: 89066f01f32 i18n: turn even more messages into "cannot be used together" ones
--
gitgitgadget
next prev parent reply other threads:[~2021-12-27 23:24 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-03 7:01 [PATCH 00/10] Factorization of messages with similar meaning Jean-Noël Avila via GitGitGadget
2021-12-03 7:01 ` [PATCH 01/10] i18n: refactor "foo and bar are mutually exclusive" Jean-Noël Avila via GitGitGadget
2021-12-07 18:07 ` Ævar Arnfjörð Bjarmason
2021-12-08 18:13 ` Jean-Noël AVILA
2021-12-03 7:01 ` [PATCH 02/10] i18n: refactor "%s, %s and %s " Jean-Noël Avila via GitGitGadget
2021-12-03 7:01 ` [PATCH 03/10] i18n: turn "options are incompatible" into "are " Jean-Noël Avila via GitGitGadget
2021-12-03 7:01 ` [PATCH 04/10] i18n: standardize "cannot open" and "cannot read" Jean-Noël Avila via GitGitGadget
2021-12-07 18:09 ` Ævar Arnfjörð Bjarmason
2021-12-03 7:01 ` [PATCH 05/10] i18n: tag.c factorize i18n strings Jean-Noël Avila via GitGitGadget
2021-12-07 18:10 ` Ævar Arnfjörð Bjarmason
2021-12-03 7:01 ` [PATCH 06/10] i18n: factorize "--foo requires --bar" and the like Jean-Noël Avila via GitGitGadget
2021-12-03 7:01 ` [PATCH 07/10] i18n: factorize "no directory given for --foo" Jean-Noël Avila via GitGitGadget
2021-12-03 7:01 ` [PATCH 08/10] i18n: refactor "unrecognized %(foo) argument" strings Jean-Noël Avila via GitGitGadget
2021-12-07 18:15 ` Ævar Arnfjörð Bjarmason
2021-12-03 7:01 ` [PATCH 09/10] i18n: factorize "--foo outside a repository" Jean-Noël Avila via GitGitGadget
2021-12-03 7:01 ` [PATCH 10/10] i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom" Jean-Noël Avila via GitGitGadget
2021-12-03 21:55 ` [PATCH 00/10] Factorization of messages with similar meaning Jeff King
2021-12-03 23:39 ` Johannes Sixt
2021-12-05 7:31 ` Junio C Hamano
2021-12-05 17:25 ` Jean-Noël AVILA
2021-12-05 19:50 ` Johannes Sixt
2021-12-06 19:18 ` Junio C Hamano
2021-12-05 19:30 ` Junio C Hamano
2021-12-27 23:23 ` Jean-Noël Avila via GitGitGadget [this message]
2021-12-27 23:23 ` [PATCH v2 01/11] i18n: refactor "foo and bar are mutually exclusive" Jean-Noël Avila via GitGitGadget
2021-12-27 23:23 ` [PATCH v2 02/11] i18n: refactor "%s, %s and %s " Jean-Noël Avila via GitGitGadget
2021-12-27 23:23 ` [PATCH v2 03/11] i18n: turn "options are incompatible" into "cannot be used together" Jean-Noël Avila via GitGitGadget
2021-12-27 23:23 ` [PATCH v2 04/11] i18n: standardize "cannot open" and "cannot read" Jean-Noël Avila via GitGitGadget
2021-12-27 23:23 ` [PATCH v2 05/11] i18n: tag.c factorize i18n strings Jean-Noël Avila via GitGitGadget
2021-12-27 23:42 ` Junio C Hamano
2021-12-27 23:45 ` Ævar Arnfjörð Bjarmason
2021-12-28 0:16 ` Junio C Hamano
2021-12-29 14:05 ` Jean-Noël AVILA
2021-12-27 23:23 ` [PATCH v2 06/11] i18n: factorize "--foo requires --bar" and the like Jean-Noël Avila via GitGitGadget
2021-12-28 7:01 ` Johannes Sixt
2021-12-29 14:02 ` Jean-Noël AVILA
2021-12-27 23:23 ` [PATCH v2 07/11] i18n: factorize "no directory given for --foo" Jean-Noël Avila via GitGitGadget
2021-12-27 23:23 ` [PATCH v2 08/11] i18n: refactor "unrecognized %(foo) argument" strings Jean-Noël Avila via GitGitGadget
2021-12-27 23:23 ` [PATCH v2 09/11] i18n: factorize "--foo outside a repository" Jean-Noël Avila via GitGitGadget
2021-12-27 23:23 ` [PATCH v2 10/11] i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom" Jean-Noël Avila via GitGitGadget
2021-12-27 23:23 ` [PATCH v2 11/11] i18n: turn even more messages into "cannot be used together" ones Jean-Noël Avila via GitGitGadget
2021-12-28 7:33 ` Johannes Sixt
2021-12-29 15:49 ` Jean-Noël AVILA
2021-12-29 18:54 ` [PATCH v3 00/11] Factorization of messages with similar meaning Jean-Noël Avila via GitGitGadget
2021-12-29 18:54 ` [PATCH v3 01/11] i18n: refactor "foo and bar are mutually exclusive" Jean-Noël Avila via GitGitGadget
2021-12-29 18:54 ` [PATCH v3 02/11] i18n: refactor "%s, %s and %s " Jean-Noël Avila via GitGitGadget
2021-12-30 22:26 ` Junio C Hamano
2021-12-31 17:05 ` Jean-Noël AVILA
2021-12-29 18:54 ` [PATCH v3 03/11] i18n: turn "options are incompatible" into "cannot be used together" Jean-Noël Avila via GitGitGadget
2021-12-29 19:36 ` Johannes Sixt
2021-12-30 16:52 ` Jean-Noël AVILA
2021-12-30 22:36 ` Junio C Hamano
2021-12-29 18:55 ` [PATCH v3 04/11] i18n: standardize "cannot open" and "cannot read" Jean-Noël Avila via GitGitGadget
2021-12-29 18:55 ` [PATCH v3 05/11] i18n: tag.c factorize i18n strings Jean-Noël Avila via GitGitGadget
2022-01-01 14:14 ` René Scharfe
2021-12-29 18:55 ` [PATCH v3 06/11] i18n: factorize "--foo requires --bar" and the like Jean-Noël Avila via GitGitGadget
2021-12-29 18:55 ` [PATCH v3 07/11] i18n: factorize "no directory given for --foo" Jean-Noël Avila via GitGitGadget
2021-12-30 22:36 ` Junio C Hamano
2021-12-29 18:55 ` [PATCH v3 08/11] i18n: refactor "unrecognized %(foo) argument" strings Jean-Noël Avila via GitGitGadget
2021-12-29 18:55 ` [PATCH v3 09/11] i18n: factorize "--foo outside a repository" Jean-Noël Avila via GitGitGadget
2021-12-29 18:55 ` [PATCH v3 10/11] i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom" Jean-Noël Avila via GitGitGadget
2021-12-29 18:55 ` [PATCH v3 11/11] i18n: turn even more messages into "cannot be used together" ones Jean-Noël Avila via GitGitGadget
2021-12-30 22:36 ` Junio C Hamano
2021-12-31 17:16 ` Jean-Noël AVILA
2022-01-03 21:51 ` Junio C Hamano
2022-01-02 17:15 ` [PATCH v4 00/11] Factorization of messages with similar meaning Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 01/11] i18n: refactor "foo and bar are mutually exclusive" Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 02/11] i18n: refactor "%s, %s and %s " Jean-Noël Avila via GitGitGadget
2022-01-03 15:44 ` Johannes Sixt
2022-01-02 17:15 ` [PATCH v4 03/11] i18n: turn "options are incompatible" into "cannot be used together" Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 04/11] i18n: standardize "cannot open" and "cannot read" Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 05/11] i18n: tag.c factorize i18n strings Jean-Noël Avila via GitGitGadget
2022-01-02 17:37 ` René Scharfe
2022-01-02 20:29 ` Jean-Noël AVILA
2022-01-02 17:15 ` [PATCH v4 06/11] i18n: factorize "--foo requires --bar" and the like Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 07/11] i18n: factorize "no directory given for --foo" Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 08/11] i18n: refactor "unrecognized %(foo) argument" strings Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 09/11] i18n: factorize "--foo outside a repository" Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 10/11] i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom" Jean-Noël Avila via GitGitGadget
2022-01-02 17:15 ` [PATCH v4 11/11] i18n: turn even more messages into "cannot be used together" ones Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 00/11] Factorization of messages with similar meaning Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 01/11] i18n: refactor "foo and bar are mutually exclusive" Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 02/11] i18n: refactor "%s, %s and %s " Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 03/11] i18n: turn "options are incompatible" into "cannot be used together" Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 04/11] i18n: standardize "cannot open" and "cannot read" Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 05/11] i18n: tag.c factorize i18n strings Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 06/11] i18n: factorize "--foo requires --bar" and the like Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 07/11] i18n: factorize "no directory given for --foo" Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 08/11] i18n: refactor "unrecognized %(foo) argument" strings Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 09/11] i18n: factorize "--foo outside a repository" Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 10/11] i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom" Jean-Noël Avila via GitGitGadget
2022-01-05 20:02 ` [PATCH v5 11/11] i18n: turn even more messages into "cannot be used together" ones Jean-Noël Avila via GitGitGadget
2022-01-05 20:58 ` [PATCH v5 00/11] Factorization of messages with similar meaning Johannes Sixt
2022-01-05 21:31 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1088.v2.git.1640647437.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=j6t@kdbg.org \
--cc=jn.avila@free.fr \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).