Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
unpack_trees(): allow callers to differentiate worktree errors from merge errors
author
Junio C Hamano
<gitster@pobox.com>
Wed, 28 May 2008 22:12:30 +0000
(15:12 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Fri, 30 May 2008 00:35:21 +0000
(17:35 -0700)
Instead of uniformly returning -1 on any error, this teaches
unpack_trees() to return -2 when the merge itself is Ok but worktree
refuses to get updated.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
unpack-trees.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
6286a08
)
diff --git
a/unpack-trees.c
b/unpack-trees.c
index 0de5a31c0b68f87491e540fdc1978809fee00240..cba0aca062f201c5cd5f8799f2190d4a6f06e7c7 100644
(file)
--- a/
unpack-trees.c
+++ b/
unpack-trees.c
@@
-358,8
+358,13
@@
static int unpack_failed(struct unpack_trees_options *o, const char *message)
return -1;
}
return -1;
}
+/*
+ * N-way merge "len" trees. Returns 0 on success, -1 on failure to manipulate the
+ * resulting index, -2 on failure to reflect the changes to the work tree.
+ */
int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options *o)
{
int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options *o)
{
+ int ret;
static struct cache_entry *dfc;
if (len > MAX_UNPACK_TREES)
static struct cache_entry *dfc;
if (len > MAX_UNPACK_TREES)
@@
-404,11
+409,10
@@
int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
return unpack_failed(o, "Merge requires file-level merging");
o->src_index = NULL;
return unpack_failed(o, "Merge requires file-level merging");
o->src_index = NULL;
- if (check_updates(o))
- return -1;
+ ret = check_updates(o) ? (-2) : 0;
if (o->dst_index)
*o->dst_index = o->result;
if (o->dst_index)
*o->dst_index = o->result;
- return
0
;
+ return
ret
;
}
/* Here come the merge functions */
}
/* Here come the merge functions */