diff options
author | Daniel Barkalow <barkalow@iabervon.org> | 2008-02-07 16:39:48 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-02-10 07:16:51 (GMT) |
commit | 203a2fe117070964a5bf7cc940a742cad7a19fca (patch) | |
tree | fc0b78c0020f32ff1d55e31aca3ef4fba0a34574 /diff-lib.c | |
parent | 9cb76b8cdc8ac62a77080595f6443613fd64bab3 (diff) | |
download | git-203a2fe117070964a5bf7cc940a742cad7a19fca.zip git-203a2fe117070964a5bf7cc940a742cad7a19fca.tar.gz git-203a2fe117070964a5bf7cc940a742cad7a19fca.tar.bz2 |
Allow callers of unpack_trees() to handle failure
Return an error from unpack_trees() instead of calling die(), and exit
with an error in read-tree, builtin-commit, and diff-lib. merge-recursive
already expected an error return from unpack_trees, so it doesn't need to
be changed. The merge function can return negative to abort.
This will be used in builtin-checkout -m.
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Diffstat (limited to 'diff-lib.c')
-rw-r--r-- | diff-lib.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -737,7 +737,8 @@ int run_diff_index(struct rev_info *revs, int cached) opts.unpack_data = revs; init_tree_desc(&t, tree->buffer, tree->size); - unpack_trees(1, &t, &opts); + if (unpack_trees(1, &t, &opts)) + exit(128); diffcore_std(&revs->diffopt); diff_flush(&revs->diffopt); @@ -789,6 +790,7 @@ int do_diff_cache(const unsigned char *tree_sha1, struct diff_options *opt) opts.unpack_data = &revs; init_tree_desc(&t, tree->buffer, tree->size); - unpack_trees(1, &t, &opts); + if (unpack_trees(1, &t, &opts)) + exit(128); return 0; } |