Sorry for the late reply... On Tue, Jul 30, 2019 at 3:49 PM Derrick Stolee via GitGitGadget <gitgitgadget@xxxxxxxxx> wrote: > > --- a/Documentation/config/merge.txt > +++ b/Documentation/config/merge.txt > @@ -54,7 +54,8 @@ merge.directoryRenames:: > moved into the new directory. If set to "conflict", a conflict > will be reported for such paths. If merge.renames is false, > merge.directoryRenames is ignored and treated as false. Defaults > - to "conflict". > + to "conflict" unless `feature.experimental` is enabled and the > + default is "true". I have a hard time parsing that changed sentence. Perhaps something like: ...unless `feature.experimental` is enabled in which case the default is "true". ? ... > diff --git a/repo-settings.c b/repo-settings.c > index af93696343..e0673938c0 100644 > --- a/repo-settings.c > +++ b/repo-settings.c > @@ -34,6 +34,18 @@ void prepare_repo_settings(struct repository *r) > free(strval); > } > > + if (!repo_config_get_maybe_bool(r, "merge.directoryrenames", &value)) > + r->settings.merge_directory_renames = value ? MERGE_DIRECTORY_RENAMES_TRUE : 0; Shouldn't that be "MERGE_DIRECTORY_RENAMES_NONE" instead of "0"? > diff --git a/repository.h b/repository.h > index e7a72e2341..b8e52dd48f 100644 > --- a/repository.h > +++ b/repository.h > @@ -19,6 +19,20 @@ enum untracked_cache_setting { > UNTRACKED_CACHE_WRITE = 2 > }; > > +enum merge_directory_renames_setting { > + MERGE_DIRECTORY_RENAMES_UNSET = -1, > + MERGE_DIRECTORY_RENAMES_NONE = 0, > + MERGE_DIRECTORY_RENAMES_CONFLICT = 1, > + MERGE_DIRECTORY_RENAMES_TRUE = 2, > +}; Thanks for adding these; makes things much nicer. :-) Cheers, Elijah