From: Elijah Newren <newren@gmail.com> To: Ben Peart <Ben.Peart@microsoft.com> Cc: "git@vger.kernel.org" <git@vger.kernel.org>, "peff@peff.net" <peff@peff.net>, "gitster@pobox.com" <gitster@pobox.com>, "pclouds@gmail.com" <pclouds@gmail.com>, "vmiklos@frugalware.org" <vmiklos@frugalware.org>, Kevin Willford <kewillf@microsoft.com>, "Johannes.Schindelin@gmx.de" <Johannes.Schindelin@gmx.de>, "eckhard.s.maass@googlemail.com" <eckhard.s.maass@googlemail.com> Subject: Re: [PATCH v3 2/3] merge: Add merge.renames config setting Date: Thu, 26 Apr 2018 15:52:18 -0700 [thread overview] Message-ID: <CABPp-BE29rwZCDqFHH-nzrDub6MMdtoiorj0jv3K6B6cmfcaLA@mail.gmail.com> (raw) In-Reply-To: <20180426205202.23056-3-benpeart@microsoft.com> On Thu, Apr 26, 2018 at 1:52 PM, Ben Peart <Ben.Peart@microsoft.com> wrote: > +merge.renames:: > + Whether and how Git detects renames. If set to "false", > + rename detection is disabled. If set to "true", basic rename > + detection is enabled. If set to "copies" or "copy", Git will > + detect copies, as well. Defaults to the value of diff.renames. > + We shouldn't allow users to force copy detection on for merges The diff side of the code will detect them correctly but the code in merge-recursive will mishandle the copy pairs. I think fixing it is somewhere between big can of worms and it's-a-configuration-that-doesn't-even-make-sense, but it's been a while since I thought about it. > diff --git a/merge-recursive.h b/merge-recursive.h > index 80d69d1401..0c5f7eff98 100644 > --- a/merge-recursive.h > +++ b/merge-recursive.h > @@ -17,7 +17,8 @@ struct merge_options { > unsigned renormalize : 1; > long xdl_opts; > int verbosity; > - int detect_rename; > + int diff_detect_rename; > + int merge_detect_rename; > int diff_rename_limit; > int merge_rename_limit; > int rename_score; > @@ -28,6 +29,11 @@ struct merge_options { > struct hashmap current_file_dir_set; > struct string_list df_conflict_file_set; > }; > +inline int merge_detect_rename(struct merge_options *o) > +{ > + return o->merge_detect_rename >= 0 ? o->merge_detect_rename : > + o->diff_detect_rename >= 0 ? o->diff_detect_rename : 1; > +} Why did you split o->detect_rename into two fields? You then recombine them in merge_detect_rename(), and after initial setup only ever access them through that function. Having two fields worries me that people will accidentally introduce bugs by using one of them instead of the merge_detect_rename() function. Is there a reason you decided against having the initial setup just set a single value and then use it directly?
next prev parent reply other threads:[~2018-04-26 22:52 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-20 13:36 [PATCH v1 0/2] add additional config settings for merge Ben Peart 2018-04-20 13:36 ` [PATCH v1 1/2] merge: Add merge.renames config setting Ben Peart 2018-04-20 17:02 ` Elijah Newren 2018-04-20 17:26 ` Elijah Newren 2018-04-23 12:57 ` Ben Peart 2018-04-20 17:59 ` Ben Peart 2018-04-20 18:34 ` Elijah Newren 2018-04-21 4:23 ` Junio C Hamano 2018-04-23 16:00 ` Ben Peart 2018-04-23 23:23 ` Junio C Hamano 2018-04-24 11:58 ` Johannes Schindelin 2018-04-24 17:47 ` Elijah Newren 2018-04-25 8:20 ` Johannes Schindelin 2018-04-22 12:07 ` Eckhard Maaß 2018-04-23 13:15 ` Ben Peart 2018-04-23 21:32 ` Eckhard Maaß 2018-04-24 16:53 ` Ben Peart 2018-04-23 13:22 ` Ben Peart 2018-04-20 13:36 ` [PATCH v1 2/2] merge: Add merge.aggressive " Ben Peart 2018-04-20 17:22 ` Elijah Newren 2018-04-24 16:45 ` Ben Peart 2018-04-24 17:36 ` Elijah Newren 2018-04-24 23:57 ` Junio C Hamano 2018-04-25 14:47 ` Ben Peart 2018-04-20 17:34 ` [PATCH v1 0/2] add additional config settings for merge Elijah Newren 2018-04-20 18:19 ` Ben Peart 2018-04-24 17:11 ` [PATCH v2 " Ben Peart 2018-04-24 17:11 ` [PATCH v2 1/2] merge: Add merge.renames config setting Ben Peart 2018-04-24 18:11 ` Elijah Newren 2018-04-24 18:59 ` Elijah Newren 2018-04-24 20:31 ` Ben Peart 2018-04-25 16:01 ` Elijah Newren 2018-04-24 17:11 ` [PATCH v2 2/2] merge: Add merge.aggressive " Ben Peart 2018-04-25 0:13 ` [PATCH v2 0/2] add additional config settings for merge Junio C Hamano 2018-04-25 15:22 ` Ben Peart 2018-04-26 1:48 ` Junio C Hamano 2018-04-26 20:52 ` [PATCH v3 0/3] add merge.renames config setting Ben Peart 2018-04-26 20:52 ` [PATCH v3 1/3] merge: update documentation for {merge,diff}.renameLimit Ben Peart 2018-04-26 23:11 ` Elijah Newren 2018-04-26 23:23 ` Jonathan Tan 2018-04-26 20:52 ` [PATCH v3 2/3] merge: Add merge.renames config setting Ben Peart 2018-04-26 22:52 ` Elijah Newren [this message] 2018-04-27 0:54 ` Ben Peart 2018-04-27 2:23 ` Junio C Hamano 2018-04-27 3:28 ` Elijah Newren 2018-04-27 7:23 ` Johannes Schindelin 2018-04-27 14:32 ` Elijah Newren 2018-04-27 18:37 ` Eckhard Maaß 2018-04-27 20:23 ` Elijah Newren 2018-04-30 8:03 ` Eckhard Maaß 2018-04-30 16:54 ` Elijah Newren 2018-04-27 4:17 ` Elijah Newren 2018-04-27 18:19 ` Elijah Newren 2018-04-30 13:11 ` Ben Peart 2018-04-30 16:12 ` Re: Elijah Newren 2018-05-02 14:33 ` Re: Ben Peart 2018-04-26 20:52 ` [PATCH v3 3/3] merge: pass aggressive when rename detection is turned off Ben Peart 2018-04-26 23:00 ` Elijah Newren 2018-04-26 22:08 ` [PATCH v3 0/3] add merge.renames config setting Elijah Newren 2018-05-02 16:01 ` [PATCH v4 0/3] add additional config settings for merge Ben Peart 2018-05-02 16:01 ` [PATCH v4 1/3] merge: update documentation for {merge,diff}.renameLimit Ben Peart 2018-05-02 16:01 ` [PATCH v4 2/3] merge: Add merge.renames config setting Ben Peart 2018-05-04 3:07 ` Junio C Hamano 2018-05-02 16:01 ` [PATCH v4 3/3] merge: pass aggressive when rename detection is turned off Ben Peart 2018-05-02 17:20 ` [PATCH v4 0/3] add additional config settings for merge Elijah Newren
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CABPp-BE29rwZCDqFHH-nzrDub6MMdtoiorj0jv3K6B6cmfcaLA@mail.gmail.com \ --to=newren@gmail.com \ --cc=Ben.Peart@microsoft.com \ --cc=Johannes.Schindelin@gmx.de \ --cc=eckhard.s.maass@googlemail.com \ --cc=git@vger.kernel.org \ --cc=gitster@pobox.com \ --cc=kewillf@microsoft.com \ --cc=pclouds@gmail.com \ --cc=peff@peff.net \ --cc=vmiklos@frugalware.org \ --subject='Re: [PATCH v3 2/3] merge: Add merge.renames config setting' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).