Re: [PATCH] diff: implement config.diff.renames=copies-harder
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 7, 2023, 03:10 UTC
- Message-ID
- <xmqq7cmu9s29.fsf@gitster.g>
- In-Reply-To
- <CABPp-BEuvjduS4JiORJybKtoPWvJd+BbbR_JAvZdj4Px_v8H4A@mail.gmail.com>
Elijah Newren <newren@gmail.com> writes:
Show 18 quoted lines
> On Fri, Nov 3, 2023 at 4:25 AM Sam James via GitGitGadget > <gitgitgadget@gmail.com> wrote: >> >> From: Sam James <sam@gentoo.org> >> >> This patch adds a config value for 'diff.renames' called 'copies-harder' >> which make it so '-C -C' is in effect always passed for 'git log -p', >> 'git diff', etc. >> >> This allows specifying that 'git log -p', 'git diff', etc should always act >> as if '-C --find-copies-harder' was passed. >> >> I've found this especially useful for certain types of repository (like >> Gentoo's ebuild repositories) because files are often copies of a previous >> version. > > These must be very small repositories? --find-copies-harder is really > expensive...
True. "often copies of a previous version" means that it is a directory that has a collection of subdirectories, one for each version? In a source tree managed in a version control system, files are often rewritten in place from the previous version, so I am puzzled by that justification.
It is, in the proposed log message of our commits, a bit unusual to see "This patch does X" and "I do Y", by the way, which made my reading hiccup a bit, but perhaps it is just me?
Show 13 quoted lines
>> diff --git a/Documentation/config/diff.txt b/Documentation/config/diff.txt >> index bd5ae0c3378..d2ff3c62d41 100644 >> --- a/Documentation/config/diff.txt >> +++ b/Documentation/config/diff.txt >> @@ -131,7 +131,8 @@ diff.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 true. Note that this >> + detect copies, as well. If set to "copies-harder", Git will try harder >> + to detect copies. Defaults to true. Note that this > > "try harder to detect copies" feels like an unhelpful explanation.
Yup. "will spend extra cycles to find more copies", perhaps?