[PATCH v4 06/16] merge_recursive: abort properly upon errors
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jul 22, 2016, 12:25 UTC
- Message-ID
- <26f12ac5a5b8e722d81c782b32585531521c98d4.1469187653.git.johannes.schindelin@gmx.de>
- In-Reply-To
- <cover.1469187652.git.johannes.schindelin@gmx.de>
There are a couple of places where return values indicating errors are ignored. Let's teach them manners.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- merge-recursive.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c index dc3182b..2d4cb80 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -1949,8 +1949,9 @@ int merge_recursive(struct merge_options *o, saved_b2 = o->branch2; o->branch1 = "Temporary merge branch 1"; o->branch2 = "Temporary merge branch 2"; - merge_recursive(o, merged_common_ancestors, iter->item, - NULL, &merged_common_ancestors); + if (merge_recursive(o, merged_common_ancestors, iter->item, + NULL, &merged_common_ancestors) < 0) + return -1; o->branch1 = saved_b1; o->branch2 = saved_b2; o->call_depth--; @@ -1966,6 +1967,8 @@ int merge_recursive(struct merge_options *o, o->ancestor = "merged common ancestors"; clean = merge_trees(o, h1->tree, h2->tree, merged_common_ancestors->tree, &mrtree); + if (clean < 0) + return clean; if (o->call_depth) { *result = make_virtual_commit(mrtree, "merged tree"); @@ -2022,6 +2025,9 @@ int merge_recursive_generic(struct merge_options *o, hold_locked_index(lock, 1); clean = merge_recursive(o, head_commit, next_commit, ca, result); + if (clean < 0) + return clean; + if (active_cache_changed && write_locked_index(&the_index, lock, COMMIT_LOCK)) return error(_("Unable to write index."));
-- 2.9.0.281.g286a8d9