merge-recursive: use handle_file_collision for add/add conflicts
This results in no-net change of behavior, it simply ensures that all file-collision conflict handling types are being handled the same by calling the same function. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Elijah Newren committed
Nov 7, 2018 at 20:40 UTC
dcf2815098589b1fa0a01e7a8459c213581d4412
1 file changed
+21
-8
merge-recursive.c
+21
-8
@@ -3355,14 +3355,27 @@ static int process_entry(struct merge_options *o,
3355
clean_merge = -1;
3356
}
3357
} else if (a_oid && b_oid) {
3358
- /* Case C: Added in both (check for same permissions) and */
3359
- /* case D: Modified in both, but differently. */
3360
- int is_dirty = 0; /* unpack_trees would have bailed if dirty */
3361
- clean_merge = handle_content_merge(o, path, is_dirty,
3362
- o_oid, o_mode,
3363
- a_oid, a_mode,
3364
- b_oid, b_mode,
3365
- NULL);
3358
+ if (!o_oid) {
3359
+ /* Case C: Added in both (check for same permissions) */
3360
+ output(o, 1,
3361
+ _("CONFLICT (add/add): Merge conflict in %s"),
3362
+ path);
3363
+ clean_merge = handle_file_collision(o,
3364
+ path, NULL, NULL,
3365
+ o->branch1,
3366
+ o->branch2,
3367
+ a_oid, a_mode,
3368
+ b_oid, b_mode);
3369
+ } else {
3370
+ /* case D: Modified in both, but differently. */
3371
+ int is_dirty = 0; /* unpack_trees would have bailed if dirty */
3372
+ clean_merge = handle_content_merge(o, path,
3373
+ is_dirty,
3374
+ o_oid, o_mode,
3375
+ a_oid, a_mode,
3376
+ b_oid, b_mode,
3377
+ NULL);
3378
+ }
3379
} else if (!o_oid && !a_oid && !b_oid) {
3380
/*
3381
* this entry was deleted altogether. a_mode == 0 means