Merge branch 'jk/two-way-merge-corner-case-fix' into maint
"git am --abort" sometimes complained about not being able to write a tree with an 0{40} object in it. * jk/two-way-merge-corner-case-fix: t1005: add test for "read-tree --reset -u A B" t1005: reindent unpack-trees: fix "read-tree -u --reset A B" with conflicted index
This commit is contained in:
@ -1763,14 +1763,23 @@ int twoway_merge(const struct cache_entry * const *src,
|
||||
newtree = NULL;
|
||||
|
||||
if (current) {
|
||||
if ((!oldtree && !newtree) || /* 4 and 5 */
|
||||
(!oldtree && newtree &&
|
||||
same(current, newtree)) || /* 6 and 7 */
|
||||
(oldtree && newtree &&
|
||||
same(oldtree, newtree)) || /* 14 and 15 */
|
||||
(oldtree && newtree &&
|
||||
!same(oldtree, newtree) && /* 18 and 19 */
|
||||
same(current, newtree))) {
|
||||
if (current->ce_flags & CE_CONFLICTED) {
|
||||
if (same(oldtree, newtree) || o->reset) {
|
||||
if (!newtree)
|
||||
return deleted_entry(current, current, o);
|
||||
else
|
||||
return merged_entry(newtree, current, o);
|
||||
}
|
||||
return o->gently ? -1 : reject_merge(current, o);
|
||||
}
|
||||
else if ((!oldtree && !newtree) || /* 4 and 5 */
|
||||
(!oldtree && newtree &&
|
||||
same(current, newtree)) || /* 6 and 7 */
|
||||
(oldtree && newtree &&
|
||||
same(oldtree, newtree)) || /* 14 and 15 */
|
||||
(oldtree && newtree &&
|
||||
!same(oldtree, newtree) && /* 18 and 19 */
|
||||
same(current, newtree))) {
|
||||
return keep_entry(current, o);
|
||||
}
|
||||
else if (oldtree && !newtree && same(current, oldtree)) {
|
||||
|
Reference in New Issue
Block a user