merge-ort: add some more explanations in collect_merge_info_callback()

The previous patch possibly raises some questions about whether
additional cases in collect_merge_info_callback() can be handled early.
Add some explanations in the form of comments to help explain these
better.  While we're at it, add a few comments to denote what a few
boolean '0' or '1' values stand for.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Elijah Newren 2021-07-16 05:22:32 +00:00 committed by Junio C Hamano
parent 785bf2088e
commit 528fc51b6d
1 changed files with 15 additions and 5 deletions

View File

@ -1018,8 +1018,8 @@ static int collect_merge_info_callback(int n,
if (side1_matches_mbase && side2_matches_mbase) { if (side1_matches_mbase && side2_matches_mbase) {
/* mbase, side1, & side2 all match; use mbase as resolution */ /* mbase, side1, & side2 all match; use mbase as resolution */
setup_path_info(opt, &pi, dirname, info->pathlen, fullpath, setup_path_info(opt, &pi, dirname, info->pathlen, fullpath,
names, names+0, mbase_null, 0, names, names+0, mbase_null, 0 /* df_conflict */,
filemask, dirmask, 1); filemask, dirmask, 1 /* resolved */);
return mask; return mask;
} }


@ -1061,14 +1061,24 @@ static int collect_merge_info_callback(int n,
} }


/* /*
* Gather additional information used in rename detection. * Sometimes we can tell that a source path need not be included in
* rename detection -- namely, whenever either
* side1_matches_mbase && side2_null
* or
* side2_matches_mbase && side1_null
* However, we call collect_rename_info() even in those cases,
* because exact renames are cheap and would let us remove both a
* source and destination path. We'll cull the unneeded sources
* later.
*/ */
collect_rename_info(opt, names, dirname, fullpath, collect_rename_info(opt, names, dirname, fullpath,
filemask, dirmask, match_mask); filemask, dirmask, match_mask);


/* /*
* Record information about the path so we can resolve later in * None of the special cases above matched, so we have a
* process_entries. * provisional conflict. (Rename detection might allow us to
* unconflict some more cases, but that comes later so all we can
* do now is record the different non-null file hashes.)
*/ */
setup_path_info(opt, &pi, dirname, info->pathlen, fullpath, setup_path_info(opt, &pi, dirname, info->pathlen, fullpath,
names, NULL, 0, df_conflict, filemask, dirmask, 0); names, NULL, 0, df_conflict, filemask, dirmask, 0);