merge-recursive: Move delete/modify handling into dedicated function
This move is in preparation for the function being called from multiple places in order to handle D/F conflicts. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
6ef2cb008f
commit
5e3ce663b0
|
@ -1118,6 +1118,26 @@ error_return:
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void handle_delete_modify(struct merge_options *o,
|
||||
const char *path,
|
||||
unsigned char *a_sha, int a_mode,
|
||||
unsigned char *b_sha, int b_mode)
|
||||
{
|
||||
if (!a_sha) {
|
||||
output(o, 1, "CONFLICT (delete/modify): %s deleted in %s "
|
||||
"and modified in %s. Version %s of %s left in tree.",
|
||||
path, o->branch1,
|
||||
o->branch2, o->branch2, path);
|
||||
update_file(o, 0, b_sha, b_mode, path);
|
||||
} else {
|
||||
output(o, 1, "CONFLICT (delete/modify): %s deleted in %s "
|
||||
"and modified in %s. Version %s of %s left in tree.",
|
||||
path, o->branch2,
|
||||
o->branch1, o->branch1, path);
|
||||
update_file(o, 0, a_sha, a_mode, path);
|
||||
}
|
||||
}
|
||||
|
||||
/* Per entry merge function */
|
||||
static int process_entry(struct merge_options *o,
|
||||
const char *path, struct stage_data *entry)
|
||||
|
@ -1150,19 +1170,8 @@ static int process_entry(struct merge_options *o,
|
|||
} else {
|
||||
/* Deleted in one and changed in the other */
|
||||
clean_merge = 0;
|
||||
if (!a_sha) {
|
||||
output(o, 1, "CONFLICT (delete/modify): %s deleted in %s "
|
||||
"and modified in %s. Version %s of %s left in tree.",
|
||||
path, o->branch1,
|
||||
o->branch2, o->branch2, path);
|
||||
update_file(o, 0, b_sha, b_mode, path);
|
||||
} else {
|
||||
output(o, 1, "CONFLICT (delete/modify): %s deleted in %s "
|
||||
"and modified in %s. Version %s of %s left in tree.",
|
||||
path, o->branch2,
|
||||
o->branch1, o->branch1, path);
|
||||
update_file(o, 0, a_sha, a_mode, path);
|
||||
}
|
||||
handle_delete_modify(o, path,
|
||||
a_sha, a_mode, b_sha, b_mode);
|
||||
}
|
||||
|
||||
} else if ((!o_sha && a_sha && !b_sha) ||
|
||||
|
|
Loading…
Reference in New Issue