aboutsummaryrefslogtreecommitdiff
path: root/sequencer.c
diff options
context:
space:
mode:
Diffstat (limited to 'sequencer.c')
-rw-r--r--sequencer.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/sequencer.c b/sequencer.c
index 2db52fe800..65d371c746 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -2610,8 +2610,13 @@ static int error_with_patch(struct commit *commit,
const char *subject, int subject_len,
struct replay_opts *opts, int exit_code, int to_amend)
{
- if (make_patch(commit, opts))
- return -1;
+ if (commit) {
+ if (make_patch(commit, opts))
+ return -1;
+ } else if (copy_file(rebase_path_message(),
+ git_path_merge_msg(the_repository), 0666))
+ return error(_("unable to copy '%s' to '%s'"),
+ git_path_merge_msg(the_repository), rebase_path_message());
if (to_amend) {
if (intend_to_amend())
@@ -2626,9 +2631,18 @@ static int error_with_patch(struct commit *commit,
"\n"
" git rebase --continue\n"),
gpg_sign_opt_quoted(opts));
- } else if (exit_code)
- fprintf_ln(stderr, _("Could not apply %s... %.*s"),
- short_commit_name(commit), subject_len, subject);
+ } else if (exit_code) {
+ if (commit)
+ fprintf_ln(stderr, _("Could not apply %s... %.*s"),
+ short_commit_name(commit), subject_len, subject);
+ else
+ /*
+ * We don't have the hash of the parent so
+ * just print the line from the todo file.
+ */
+ fprintf_ln(stderr, _("Could not merge %.*s"),
+ subject_len, subject);
+ }
return exit_code;
}