On Thu, Apr 26, 2018 at 1:52 PM, Ben Peart <ben.pe...@microsoft.com> wrote:
> Set aggressive flag in git_merge_trees() when rename detection is turned off.
> This allows read_tree() to auto resolve more cases that would have otherwise
> been handled by the rename detection.
>
> Reviewed-by: Johannes Schindelin <johannes.schinde...@gmx.de>
> Signed-off-by: Ben Peart <benpe...@microsoft.com>
> ---
>  merge-recursive.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/merge-recursive.c b/merge-recursive.c
> index 2637d34d87..6cc4404144 100644
> --- a/merge-recursive.c
> +++ b/merge-recursive.c
> @@ -276,6 +276,7 @@ static void init_tree_desc_from_tree(struct tree_desc 
> *desc, struct tree *tree)
>  }
>
>  static int git_merge_trees(int index_only,
> +                          int aggressive,
>                            struct tree *common,
>                            struct tree *head,
>                            struct tree *merge)
> @@ -294,6 +295,7 @@ static int git_merge_trees(int index_only,
>         opts.fn = threeway_merge;
>         opts.src_index = &the_index;
>         opts.dst_index = &the_index;
> +       opts.aggressive = aggressive;
>         setup_unpack_trees_porcelain(&opts, "merge");
>
>         init_tree_desc_from_tree(t+0, common);
> @@ -1993,7 +1995,7 @@ int merge_trees(struct merge_options *o,
>                 return 1;
>         }
>
> -       code = git_merge_trees(o->call_depth, common, head, merge);
> +       code = git_merge_trees(o->call_depth, !merge_detect_rename(o), 
> common, head, merge);
>
>         if (code != 0) {
>                 if (show(o, 4) || o->call_depth)
> --
> 2.17.0.windows.1

Patch looks fine but as a heads up -- since merge_options is a
parameter in git_merge_trees after the
en/rename-directory-detection-reboot lands, we'll be able to switch
this patch to set opts.aggressive directly instead of needing to pass
it in as a parameter.

Reply via email to