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

View File

@ -46,8 +46,14 @@ test_expect_success 'setup' '
pre_merge_head="$(git rev-parse HEAD)" pre_merge_head="$(git rev-parse HEAD)"
test_expect_success 'fails without MERGE_HEAD (unstarted merge)' ' test_expect_success 'fails without MERGE_HEAD (unstarted merge)' '
test_must_fail git merge --abort 2>output && test_must_fail git merge --abort 2>output
grep -q MERGE_HEAD 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 ! -f .git/MERGE_HEAD &&
test "$pre_merge_head" = "$(git rev-parse 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 && test ! -f .git/MERGE_HEAD &&
# Merge successfully completed # Merge successfully completed
post_merge_head="$(git rev-parse HEAD)" && post_merge_head="$(git rev-parse HEAD)" &&
test_must_fail git merge --abort 2>output && test_must_fail git merge --abort 2>output
grep -q MERGE_HEAD 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 ! -f .git/MERGE_HEAD &&
test "$post_merge_head" = "$(git rev-parse HEAD)" test "$post_merge_head" = "$(git rev-parse HEAD)"
' '