On 7/23/2019 11:20 AM, Johannes Schindelin wrote:
> Hi Stolee,
>
> On Mon, 22 Jul 2019, Derrick Stolee via GitGitGadget wrote:
>> struct path_hashmap_entry {
>> struct hashmap_entry e;
>> @@ -1375,10 +1376,14 @@ static int handle_rename_via_dir(struct
>> merge_options *opt,
>> * there is no content merge to do; just move the file into the
>> * desired final location.
>> */
>> + struct repository *r = the_repository;
>> const struct rename *ren = ci->ren1;
>> const struct diff_filespec *dest = ren->pair->two;
>> char *file_path = dest->path;
>> - int mark_conflicted = (opt->detect_directory_renames == 1);
>
> I actually don't think that we want to do that; the `opt` parameter is
> passed to the merge recursive algorithm specifically so that it can be
> overridden by the caller.
>
> Instead, what we should do, I think, is to change `init_merge_options()`
> (which already gets a parameter of type `struct repository *`) so that
> it does not hard-code the `detect_directory_renames` value to `1` but to
> query the repo settings instead.
[snip]
>> @@ -3687,7 +3690,6 @@ void init_merge_options(struct merge_options *opt,
>> opt->renormalize = 0;
>> opt->diff_detect_rename = -1;
>> opt->merge_detect_rename = -1;
>> - opt->detect_directory_renames = 1;
>
> In other words: here.
Yes, thanks! Your suggestion makes much more sense and makes the diff
much simpler. No reason to couple too closely to the config storage here.
I think you gave me enough feedback to merit a v2 before others chime
in, so I'll send one after I validate my current version.
Thanks,
-Stolee