[PATCH v2 1/3] merge: abort if fails to commit
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
2011/12/15 Junio C Hamano <gitster@pobox.com>:
>> - commit_tree(merge_msg.buf, merge_msg.len, result_tree, parent, result_commit, NULL);
>> + if (commit_tree(merge_msg.buf, merge_msg.len,
>> + result_tree, parent, result_commit, NULL))
>> + die(_("failed to write commit object"));
>> finish(head, result_commit, "In-index merge");
>> drop_save();
>> return 0;
>
> Should we die immediately, or should we do some clean-ups after ourselves
> before doing so? I'm not sure. I had a quick look over the command and it seems we do
not need to do any clean-ups. But I'm not familiar with the command
anyway..
> In any case, this is a good change that shouldn't be taken hostage to the
> unrelated change in patch [1/3].
Moved it up so it you can cherry-pick it independently.
builtin/merge.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/builtin/merge.c b/builtin/merge.c
index 2870a6a..27576c0 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -913,7 +913,8 @@ static int merge_trivial(struct commit *head)
parent->next->item = remoteheads->item;
parent->next->next = NULL;
prepare_to_commit();
- commit_tree(merge_msg.buf, result_tree, parent, result_commit, NULL);
+ if (commit_tree(merge_msg.buf, result_tree, parent, result_commit, NULL))
+ die(_("failed to write commit object"));
finish(head, result_commit, "In-index merge");
drop_save();
return 0;
@@ -944,7 +945,8 @@ static int finish_automerge(struct commit *head,
strbuf_addch(&merge_msg, '\n');
prepare_to_commit();
free_commit_list(remoteheads);
- commit_tree(merge_msg.buf, result_tree, parents, result_commit, NULL);
+ if (commit_tree(merge_msg.buf, result_tree, parents, result_commit, NULL))
+ die(_("failed to write commit object"));
strbuf_addf(&buf, "Merge made by the '%s' strategy.", wt_strategy);
finish(head, result_commit, buf.buf);
strbuf_release(&buf);
--
1.7.8.36.g69ee2