On Thu, Jul 28 2022, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > >> Hi Eugen, >> >> On Tue, 26 Jul 2022, Eugen Konkov wrote: >> >>> $ git range-diff --creation-factor=100 branch...origin/branch >>> 1: a87daecd47 < -: ---------- Add mocked exchanges for ...::AutoRenew::General test >>> -: ---------- > 1: 36eaeb56a9 Add mocked exchanges for ...::AutoRenew::General test >>> 2: 9594ccf145 = 2: 70681dd13b Remove a call to DB::state >>> 3: 740903e01c = 3: 5745ae5702 Run cpanm without tests >>> 4: e8e6cac09c < -: ---------- Do not use 'require' >>> >>> --creation-factor=101 does =) >>> >>> but maximum value for percentage is 100. So expected behaviour is to display range-diff when value 100 was provided >> >> Please see https://git-scm.com/docs/git-range-diff#_algorithm for an >> explanation what the meaning of the factor is, and why 100 is not the >> maximal sensible value. > > When I had to give a huge value to the option the last time, I think > I used --creation-factor=999 or something. The thing that bugged me > in the output of "git range-diff --help" is that SYNOPSIS section > has "--creation-factor=<factor>" but the OPTIONS heading says > "--creation-factor=<percent>" and the word is used in description as > well. > > ----- >8 --------- >8 --------- >8 --------- >8 --------- >8 ----- > Subject: range-diff: clarify --creation-factor=<factor> > > The value is not a per-cent that ranges from 0 to 100. The SYNOPSIS > section gets it right, but the body of the documentation said "percent" > which confused readers. > > While we are at it, rephrase "smaller one" that corresponds to > "larger value" earlier in the sentence to "smaller value" to be more > explicit, to avoid misleading eyes of the readers to an unrelated "a > large change" nearby. > > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > --- > Documentation/git-range-diff.txt | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git c/Documentation/git-range-diff.txt w/Documentation/git-range-diff.txt > index fe350d7f40..e49630e8ad 100644 > --- c/Documentation/git-range-diff.txt > +++ w/Documentation/git-range-diff.txt > @@ -61,11 +61,11 @@ This is known to `range-diff` as "dual coloring". Use `--no-dual-color` > to revert to color all lines according to the outer diff markers > (and completely ignore the inner diff when it comes to color). > > ---creation-factor=<percent>:: > - Set the creation/deletion cost fudge factor to `<percent>`. > +--creation-factor=<factor>:: > + Set the creation/deletion cost fudge factor to `<factor>`. > Defaults to 60. Try a larger value if `git range-diff` erroneously > considers a large change a total rewrite (deletion of one commit > - and addition of another), and a smaller one in the reverse case. > + and addition of another), and a smaller value in the reverse case. > See the ``Algorithm`` section below for an explanation why this is > needed. > That algorithm section also says: The cost of an edge o--C is the size of C's diff, modified by a fudge factor that should be smaller than 100%. Which I find quite confusing to follow, isn't that "fudge factor" the <percent> (or <factor>) we're accepting with --creation-factor? Doesn't that also need to be adjusted? I still find this documentation quicke lacking, if the default is 60 and it's not 0..100 what is it then? Are values of 200 sensible in some cases, 1k? 10k?