зеркало из https://github.com/microsoft/git.git
merge-ort: add outline for computing directory renames
Port some directory rename handling changes from merge-recursive.c's detect_and_process_renames() to the same-named function of merge-ort.c. This does not yet add any use or handling of directory renames, just the outline for where we start to compute them. Thus, a future patch will add port additional changes to merge-ort's detect_and_process_renames(). Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
eb3e3e1ddf
Коммит
112e11126b
25
merge-ort.c
25
merge-ort.c
|
@ -721,6 +721,18 @@ static int handle_content_merge(struct merge_options *opt,
|
|||
|
||||
/*** Function Grouping: functions related to directory rename detection ***/
|
||||
|
||||
static void get_provisional_directory_renames(struct merge_options *opt,
|
||||
unsigned side,
|
||||
int *clean)
|
||||
{
|
||||
die("Not yet implemented!");
|
||||
}
|
||||
|
||||
static void handle_directory_level_conflicts(struct merge_options *opt)
|
||||
{
|
||||
die("Not yet implemented!");
|
||||
}
|
||||
|
||||
/*** Function Grouping: functions related to regular rename detection ***/
|
||||
|
||||
static int process_renames(struct merge_options *opt,
|
||||
|
@ -1086,13 +1098,24 @@ static int detect_and_process_renames(struct merge_options *opt,
|
|||
{
|
||||
struct diff_queue_struct combined;
|
||||
struct rename_info *renames = &opt->priv->renames;
|
||||
int s, clean = 1;
|
||||
int need_dir_renames, s, clean = 1;
|
||||
|
||||
memset(&combined, 0, sizeof(combined));
|
||||
|
||||
detect_regular_renames(opt, merge_base, side1, MERGE_SIDE1);
|
||||
detect_regular_renames(opt, merge_base, side2, MERGE_SIDE2);
|
||||
|
||||
need_dir_renames =
|
||||
!opt->priv->call_depth &&
|
||||
(opt->detect_directory_renames == MERGE_DIRECTORY_RENAMES_TRUE ||
|
||||
opt->detect_directory_renames == MERGE_DIRECTORY_RENAMES_CONFLICT);
|
||||
|
||||
if (need_dir_renames) {
|
||||
get_provisional_directory_renames(opt, MERGE_SIDE1, &clean);
|
||||
get_provisional_directory_renames(opt, MERGE_SIDE2, &clean);
|
||||
handle_directory_level_conflicts(opt);
|
||||
}
|
||||
|
||||
ALLOC_GROW(combined.queue,
|
||||
renames->pairs[1].nr + renames->pairs[2].nr,
|
||||
combined.alloc);
|
||||
|
|
Загрузка…
Ссылка в новой задаче