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;
|
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 */
|
/* Per entry merge function */
|
||||||
static int process_entry(struct merge_options *o,
|
static int process_entry(struct merge_options *o,
|
||||||
const char *path, struct stage_data *entry)
|
const char *path, struct stage_data *entry)
|
||||||
|
@ -1150,19 +1170,8 @@ static int process_entry(struct merge_options *o,
|
||||||
} else {
|
} else {
|
||||||
/* Deleted in one and changed in the other */
|
/* Deleted in one and changed in the other */
|
||||||
clean_merge = 0;
|
clean_merge = 0;
|
||||||
if (!a_sha) {
|
handle_delete_modify(o, path,
|
||||||
output(o, 1, "CONFLICT (delete/modify): %s deleted in %s "
|
a_sha, a_mode, b_sha, b_mode);
|
||||||
"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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if ((!o_sha && a_sha && !b_sha) ||
|
} else if ((!o_sha && a_sha && !b_sha) ||
|
||||||
|
|
Loading…
Reference in New Issue