i18n: git-merge basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2011-02-22 23:41:59 +00:00 committed by Junio C Hamano
parent f338cb83a0
commit bacec47845
3 changed files with 86 additions and 68 deletions

View File

@ -80,7 +80,7 @@ static int option_parse_message(const struct option *opt,
strbuf_addf(buf, "%s%s", buf->len ? "\n\n" : "", arg);
have_message = 1;
} else
return error("switch `m' requires a value");
return error(_("switch `m' requires a value"));
return 0;
}
@ -117,13 +117,13 @@ static struct strategy *get_strategy(const char *name)
exclude_cmds(&main_cmds, &not_strategies);
}
if (!is_in_cmdlist(&main_cmds, name) && !is_in_cmdlist(&other_cmds, name)) {
fprintf(stderr, "Could not find merge strategy '%s'.\n", name);
fprintf(stderr, "Available strategies are:");
fprintf(stderr, _("Could not find merge strategy '%s'.\n"), name);
fprintf(stderr, _("Available strategies are:"));
for (i = 0; i < main_cmds.cnt; i++)
fprintf(stderr, " %s", main_cmds.names[i]->name);
fprintf(stderr, ".\n");
if (other_cmds.cnt) {
fprintf(stderr, "Available custom strategies are:");
fprintf(stderr, _("Available custom strategies are:"));
for (i = 0; i < other_cmds.cnt; i++)
fprintf(stderr, " %s", other_cmds.names[i]->name);
fprintf(stderr, ".\n");
@ -224,17 +224,17 @@ static void save_state(void)
cp.git_cmd = 1;
if (start_command(&cp))
die("could not run stash.");
die(_("could not run stash."));
len = strbuf_read(&buffer, cp.out, 1024);
close(cp.out);
if (finish_command(&cp) || len < 0)
die("stash failed");
die(_("stash failed"));
else if (!len)
return;
strbuf_setlen(&buffer, buffer.len-1);
if (get_sha1(buffer.buf, stash))
die("not a valid object: %s", buffer.buf);
die(_("not a valid object: %s"), buffer.buf);
}
static void read_empty(unsigned const char *sha1, int verbose)
@ -252,7 +252,7 @@ static void read_empty(unsigned const char *sha1, int verbose)
args[i] = NULL;
if (run_command_v_opt(args, RUN_GIT_CMD))
die("read-tree failed");
die(_("read-tree failed"));
}
static void reset_hard(unsigned const char *sha1, int verbose)
@ -269,7 +269,7 @@ static void reset_hard(unsigned const char *sha1, int verbose)
args[i] = NULL;
if (run_command_v_opt(args, RUN_GIT_CMD))
die("read-tree failed");
die(_("read-tree failed"));
}
static void restore_state(void)
@ -298,7 +298,7 @@ static void restore_state(void)
static void finish_up_to_date(const char *msg)
{
if (verbosity >= 0)
printf("%s%s\n", squash ? " (nothing to squash)" : "", msg);
printf("%s%s\n", squash ? _(" (nothing to squash)") : "", msg);
drop_save();
}
@ -311,10 +311,10 @@ static void squash_message(void)
int fd;
struct pretty_print_context ctx = {0};
printf("Squash commit -- not updating HEAD\n");
printf(_("Squash commit -- not updating HEAD\n"));
fd = open(git_path("SQUASH_MSG"), O_WRONLY | O_CREAT, 0666);
if (fd < 0)
die_errno("Could not write to '%s'", git_path("SQUASH_MSG"));
die_errno(_("Could not write to '%s'"), git_path("SQUASH_MSG"));
init_revisions(&rev, NULL);
rev.ignore_merges = 1;
@ -329,7 +329,7 @@ static void squash_message(void)
setup_revisions(0, NULL, &rev, NULL);
if (prepare_revision_walk(&rev))
die("revision walk setup failed");
die(_("revision walk setup failed"));
ctx.abbrev = rev.abbrev;
ctx.date_mode = rev.date_mode;
@ -342,9 +342,9 @@ static void squash_message(void)
pretty_print_commit(rev.commit_format, commit, &out, &ctx);
}
if (write(fd, out.buf, out.len) < 0)
die_errno("Writing SQUASH_MSG");
die_errno(_("Writing SQUASH_MSG"));
if (close(fd))
die_errno("Finishing SQUASH_MSG");
die_errno(_("Finishing SQUASH_MSG"));
strbuf_release(&out);
}
@ -364,7 +364,7 @@ static void finish(const unsigned char *new_head, const char *msg)
squash_message();
} else {
if (verbosity >= 0 && !merge_msg.len)
printf("No merge message -- not updating HEAD\n");
printf(_("No merge message -- not updating HEAD\n"));
else {
const char *argv_gc_auto[] = { "gc", "--auto", NULL };
update_ref(reflog_message.buf, "HEAD",
@ -386,7 +386,7 @@ static void finish(const unsigned char *new_head, const char *msg)
if (diff_use_color_default > 0)
DIFF_OPT_SET(&opts, COLOR_DIFF);
if (diff_setup_done(&opts) < 0)
die("diff_setup_done failed");
die(_("diff_setup_done failed"));
diff_tree_sha1(head, new_head, "", &opts);
diffcore_std(&opts);
diff_flush(&opts);
@ -415,7 +415,7 @@ static void merge_name(const char *remote, struct strbuf *msg)
memset(branch_head, 0, sizeof(branch_head));
remote_head = peel_to_type(remote, 0, NULL, OBJ_COMMIT);
if (!remote_head)
die("'%s' does not point to a commit", remote);
die(_("'%s' does not point to a commit"), remote);
if (dwim_ref(remote, strlen(remote), branch_head, &found_ref) > 0) {
if (!prefixcmp(found_ref, "refs/heads/")) {
@ -480,7 +480,7 @@ static void merge_name(const char *remote, struct strbuf *msg)
fp = fopen(git_path("FETCH_HEAD"), "r");
if (!fp)
die_errno("could not open '%s' for reading",
die_errno(_("could not open '%s' for reading"),
git_path("FETCH_HEAD"));
strbuf_getline(&line, fp, '\n');
fclose(fp);
@ -510,7 +510,7 @@ static int git_merge_config(const char *k, const char *v, void *cb)
buf = xstrdup(v);
argc = split_cmdline(buf, &argv);
if (argc < 0)
die("Bad branch.%s.mergeoptions string: %s", branch,
die(_("Bad branch.%s.mergeoptions string: %s"), branch,
split_cmdline_strerror(argc));
argv = xrealloc(argv, sizeof(*argv) * (argc + 2));
memmove(argv + 1, argv, sizeof(*argv) * (argc + 1));
@ -532,7 +532,7 @@ static int git_merge_config(const char *k, const char *v, void *cb)
int is_bool;
shortlog_len = git_config_bool_or_int(k, v, &is_bool);
if (!is_bool && shortlog_len < 0)
return error("%s: negative length %s", k, v);
return error(_("%s: negative length %s"), k, v);
if (is_bool && shortlog_len)
shortlog_len = DEFAULT_MERGE_LOG_LEN;
return 0;
@ -579,7 +579,7 @@ static int read_tree_trivial(unsigned char *common, unsigned char *head,
static void write_tree_trivial(unsigned char *sha1)
{
if (write_cache_as_tree(sha1, 0, NULL))
die("git write-tree failed to write a tree");
die(_("git write-tree failed to write a tree"));
}
int try_merge_command(const char *strategy, size_t xopts_nr,
@ -621,7 +621,7 @@ int try_merge_command(const char *strategy, size_t xopts_nr,
free(args);
discard_cache();
if (read_cache() < 0)
die("failed to read the cache");
die(_("failed to read the cache"));
resolve_undo_clear();
return ret;
@ -638,7 +638,7 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
if (active_cache_changed &&
(write_cache(index_fd, active_cache, active_nr) ||
commit_locked_index(lock)))
return error("Unable to write index.");
return error(_("Unable to write index."));
rollback_lock_file(lock);
if (!strcmp(strategy, "recursive") || !strcmp(strategy, "subtree")) {
@ -651,7 +651,7 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
struct commit_list *j;
if (remoteheads->next) {
error("Not handling anything other than two heads merge.");
error(_("Not handling anything other than two heads merge."));
return 2;
}
@ -663,7 +663,7 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
for (x = 0; x < xopts_nr; x++)
if (parse_merge_opt(&o, xopts[x]))
die("Unknown option for merge-recursive: -X%s", xopts[x]);
die(_("Unknown option for merge-recursive: -X%s"), xopts[x]);
o.branch1 = head_arg;
o.branch2 = remoteheads->item->util;
@ -677,7 +677,7 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
if (active_cache_changed &&
(write_cache(index_fd, active_cache, active_nr) ||
commit_locked_index(lock)))
die ("unable to write %s", get_index_file());
die (_("unable to write %s"), get_index_file());
rollback_lock_file(lock);
return clean ? 0 : 1;
} else {
@ -749,7 +749,7 @@ int checkout_fast_forward(const unsigned char *head, const unsigned char *remote
return -1;
if (write_cache(fd, active_cache, active_nr) ||
commit_locked_index(lock_file))
die("unable to write new index file");
die(_("unable to write new index file"));
return 0;
}
@ -852,7 +852,7 @@ static int suggest_conflicts(int renormalizing)
fp = fopen(git_path("MERGE_MSG"), "a");
if (!fp)
die_errno("Could not open '%s' for writing",
die_errno(_("Could not open '%s' for writing"),
git_path("MERGE_MSG"));
fprintf(fp, "\nConflicts:\n");
for (pos = 0; pos < active_nr; pos++) {
@ -868,8 +868,8 @@ static int suggest_conflicts(int renormalizing)
}
fclose(fp);
rerere(allow_rerere_auto);
printf("Automatic merge failed; "
"fix conflicts and then commit the result.\n");
printf(_("Automatic merge failed; "
"fix conflicts and then commit the result.\n"));
return 1;
}
@ -883,7 +883,7 @@ static struct commit *is_old_style_invocation(int argc, const char **argv)
return NULL;
second_token = lookup_commit_reference_gently(second_sha1, 0);
if (!second_token)
die("'%s' is not a commit", argv[1]);
die(_("'%s' is not a commit"), argv[1]);
if (hashcmp(second_token->object.sha1, head))
return NULL;
}
@ -951,7 +951,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
const char *nargv[] = {"reset", "--merge", NULL};
if (!file_exists(git_path("MERGE_HEAD")))
die("There is no merge to abort (MERGE_HEAD missing).");
die(_("There is no merge to abort (MERGE_HEAD missing)."));
/* Invoke 'git reset --merge' */
return cmd_reset(nargc, nargv, prefix);
@ -966,10 +966,10 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
* add/rm <file>', just 'git commit'.
*/
if (advice_resolve_conflict)
die("You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you can merge.");
die(_("You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you can merge."));
else
die("You have not concluded your merge (MERGE_HEAD exists).");
die(_("You have not concluded your merge (MERGE_HEAD exists)."));
}
resolve_undo_clear();
@ -978,12 +978,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
if (squash) {
if (!allow_fast_forward)
die("You cannot combine --squash with --no-ff.");
die(_("You cannot combine --squash with --no-ff."));
option_commit = 0;
}
if (!allow_fast_forward && fast_forward_only)
die("You cannot combine --no-ff with --ff-only.");
die(_("You cannot combine --no-ff with --ff-only."));
if (!argc)
usage_with_options(builtin_merge_usage,
@ -1011,16 +1011,16 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
* We do the same for "git pull".
*/
if (argc != 1)
die("Can merge only exactly one commit into "
"empty head");
die(_("Can merge only exactly one commit into "
"empty head"));
if (squash)
die("Squash commit into empty head not supported yet");
die(_("Squash commit into empty head not supported yet"));
if (!allow_fast_forward)
die("Non-fast-forward commit does not make sense into "
"an empty head");
die(_("Non-fast-forward commit does not make sense into "
"an empty head"));
remote_head = peel_to_type(argv[0], 0, NULL, OBJ_COMMIT);
if (!remote_head)
die("%s - not something we can merge", argv[0]);
die(_("%s - not something we can merge"), argv[0]);
update_ref("initial pull", "HEAD", remote_head->sha1, NULL, 0,
DIE_ON_ERR);
read_empty(remote_head->sha1, 0);
@ -1066,7 +1066,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
o = peel_to_type(argv[i], 0, NULL, OBJ_COMMIT);
if (!o)
die("%s - not something we can merge", argv[i]);
die(_("%s - not something we can merge"), argv[i]);
commit = lookup_commit(o->sha1);
commit->util = (void *)argv[i];
remotes = &commit_list_insert(commit, remotes)->next;
@ -1158,11 +1158,11 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
if (allow_trivial && !fast_forward_only) {
/* See if it is really trivial. */
git_committer_info(IDENT_ERROR_ON_NO_NAME);
printf("Trying really trivial in-index merge...\n");
printf(_("Trying really trivial in-index merge...\n"));
if (!read_tree_trivial(common->item->object.sha1,
head, remoteheads->item->object.sha1))
return merge_trivial();
printf("Nope.\n");
printf(_("Nope.\n"));
}
} else {
/*
@ -1195,7 +1195,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
}
if (fast_forward_only)
die("Not possible to fast-forward, aborting.");
die(_("Not possible to fast-forward, aborting."));
/* We are going to make a new commit. */
git_committer_info(IDENT_ERROR_ON_NO_NAME);
@ -1221,11 +1221,11 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
for (i = 0; i < use_strategies_nr; i++) {
int ret;
if (i) {
printf("Rewinding the tree to pristine...\n");
printf(_("Rewinding the tree to pristine...\n"));
restore_state();
}
if (use_strategies_nr != 1)
printf("Trying merge strategy %s...\n",
printf(_("Trying merge strategy %s...\n"),
use_strategies[i]->name);
/*
* Remember which strategy left the state in the working
@ -1286,17 +1286,17 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
restore_state();
if (use_strategies_nr > 1)
fprintf(stderr,
"No merge strategy handled the merge.\n");
_("No merge strategy handled the merge.\n"));
else
fprintf(stderr, "Merge with strategy %s failed.\n",
fprintf(stderr, _("Merge with strategy %s failed.\n"),
use_strategies[0]->name);
return 2;
} else if (best_strategy == wt_strategy)
; /* We already have its result in the working tree. */
else {
printf("Rewinding the tree to pristine...\n");
printf(_("Rewinding the tree to pristine...\n"));
restore_state();
printf("Using the %s to prepare resolving by hand.\n",
printf(_("Using the %s to prepare resolving by hand.\n"),
best_strategy);
try_merge_strategy(best_strategy, common, head_arg);
}
@ -1312,35 +1312,35 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
sha1_to_hex(j->item->object.sha1));
fd = open(git_path("MERGE_HEAD"), O_WRONLY | O_CREAT, 0666);
if (fd < 0)
die_errno("Could not open '%s' for writing",
die_errno(_("Could not open '%s' for writing"),
git_path("MERGE_HEAD"));
if (write_in_full(fd, buf.buf, buf.len) != buf.len)
die_errno("Could not write to '%s'", git_path("MERGE_HEAD"));
die_errno(_("Could not write to '%s'"), git_path("MERGE_HEAD"));
close(fd);
strbuf_addch(&merge_msg, '\n');
fd = open(git_path("MERGE_MSG"), O_WRONLY | O_CREAT, 0666);
if (fd < 0)
die_errno("Could not open '%s' for writing",
die_errno(_("Could not open '%s' for writing"),
git_path("MERGE_MSG"));
if (write_in_full(fd, merge_msg.buf, merge_msg.len) !=
merge_msg.len)
die_errno("Could not write to '%s'", git_path("MERGE_MSG"));
die_errno(_("Could not write to '%s'"), git_path("MERGE_MSG"));
close(fd);
fd = open(git_path("MERGE_MODE"), O_WRONLY | O_CREAT | O_TRUNC, 0666);
if (fd < 0)
die_errno("Could not open '%s' for writing",
die_errno(_("Could not open '%s' for writing"),
git_path("MERGE_MODE"));
strbuf_reset(&buf);
if (!allow_fast_forward)
strbuf_addf(&buf, "no-ff");
if (write_in_full(fd, buf.buf, buf.len) != buf.len)
die_errno("Could not write to '%s'", git_path("MERGE_MODE"));
die_errno(_("Could not write to '%s'"), git_path("MERGE_MODE"));
close(fd);
}
if (merge_was_ok) {
fprintf(stderr, "Automatic merge went well; "
"stopped before committing as requested\n");
fprintf(stderr, _("Automatic merge went well; "
"stopped before committing as requested\n"));
return 0;
} else
return suggest_conflicts(option_renormalize);

View File

@ -150,8 +150,14 @@ test_expect_success 'will not overwrite untracked file on unborn branch' '
git rm -fr . &&
git checkout --orphan new &&
cp important c0.c &&
test_must_fail git merge c0 2>out &&
test_cmp out expect &&
test_must_fail git merge c0 2>out
'
test_expect_success C_LOCALE_OUTPUT 'will not overwrite untracked file on unborn branch: output' '
test_cmp out expect
'
test_expect_success 'will not overwrite untracked file on unborn branch .git/MERGE_HEAD sanity etc.' '
test_path_is_missing .git/MERGE_HEAD &&
test_cmp important c0.c
'

View File

@ -46,8 +46,14 @@ test_expect_success 'setup' '
pre_merge_head="$(git rev-parse HEAD)"
test_expect_success 'fails without MERGE_HEAD (unstarted merge)' '
test_must_fail git merge --abort 2>output &&
grep -q MERGE_HEAD output &&
test_must_fail git merge --abort 2>output
'
test_expect_success C_LOCALE_OUTPUT 'fails without MERGE_HEAD (unstarted merge): fatal output' '
grep -q MERGE_HEAD output
'
test_expect_success 'fails without MERGE_HEAD (unstarted merge): .git/MERGE_HEAD sanity' '
test ! -f .git/MERGE_HEAD &&
test "$pre_merge_head" = "$(git rev-parse HEAD)"
'
@ -57,8 +63,14 @@ test_expect_success 'fails without MERGE_HEAD (completed merge)' '
test ! -f .git/MERGE_HEAD &&
# Merge successfully completed
post_merge_head="$(git rev-parse HEAD)" &&
test_must_fail git merge --abort 2>output &&
grep -q MERGE_HEAD output &&
test_must_fail git merge --abort 2>output
'
test_expect_success C_LOCALE_OUTPUT 'fails without MERGE_HEAD (completed merge): output' '
grep -q MERGE_HEAD output
'
test_expect_success 'fails without MERGE_HEAD (completed merge): .git/MERGE_HEAD sanity' '
test ! -f .git/MERGE_HEAD &&
test "$post_merge_head" = "$(git rev-parse HEAD)"
'