aboutsummaryrefslogtreecommitdiffstats
path: root/merge.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-03-07 15:59:41 -0800
committerJunio C Hamano <gitster@pobox.com>2024-03-07 15:59:41 -0800
commitae46d5fb98b316767f51a82fc0c1441174995a34 (patch)
treecc3dfac4a54bcdb534eb86be1f50a9791ea1a7c9 /merge.c
parent76d1cd8e5ec07889db43c15222d5632b90f525b2 (diff)
parent342990c7aaef5ac645e89101cb84569caf64baf4 (diff)
downloadgit-ae46d5fb98b316767f51a82fc0c1441174995a34.tar.gz
Merge branch 'js/merge-tree-3-trees'
"git merge-tree" has learned that the three trees involved in the 3-way merge only need to be trees, not necessarily commits. * js/merge-tree-3-trees: fill_tree_descriptor(): mark error message for translation cache-tree: avoid an unnecessary check Always check `parse_tree*()`'s return value t4301: verify that merge-tree fails on missing blob objects merge-ort: do check `parse_tree()`'s return value merge-tree: fail with a non-zero exit code on missing tree objects merge-tree: accept 3 trees as arguments
Diffstat (limited to 'merge.c')
-rw-r--r--merge.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/merge.c b/merge.c
index ca89b312d1..563281b10f 100644
--- a/merge.c
+++ b/merge.c
@@ -77,7 +77,10 @@ int checkout_fast_forward(struct repository *r,
return -1;
}
for (i = 0; i < nr_trees; i++) {
- parse_tree(trees[i]);
+ if (parse_tree(trees[i]) < 0) {
+ rollback_lock_file(&lock_file);
+ return -1;
+ }
init_tree_desc(t+i, trees[i]->buffer, trees[i]->size);
}