Message ID | xmqqo7x9ch7n.fsf_-_@gitster.g (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Re* --creation-factor=100 does not show code | expand |
On Thu, Jul 28 2022, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@gmx.de> 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@pobox.com> > --- > 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?
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes: > 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? I think 90% of your responses are better answered not by me. Feel free to edit "to:" header field when that happens next time ;-) Thanks.
On Thu, Jul 28 2022, Junio C Hamano wrote: > Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes: > >> 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? > > I think 90% of your responses are better answered not by me. Feel > free to edit "to:" header field when that happens next time ;-) It's a comment on your patch: If you're updating the <percent> early in the doc, shouldn't the proposed update also update the wording later on to refer to "factor?"
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes: > On Thu, Jul 28 2022, Junio C Hamano wrote: > >> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes: >> >>> 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? >> >> I think 90% of your responses are better answered not by me. Feel >> free to edit "to:" header field when that happens next time ;-) > > It's a comment on your patch: If you're updating the <percent> early in > the doc, shouldn't the proposed update also update the wording later on > to refer to "factor?" Per-cent in "100%" is clearly a unit. I do not know what to use to replace the mention of "100%" with. Rewriting it to "... should be smaller than 100-factor" does not result in a sensible description. Without other good questions like "if it is not 0..100 then in what range does the default 60 fall?" answered, I do not think anybody can come up with a useful replacement to that part.
Hi Junio, On Thu, 28 Jul 2022, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > > 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. This sentence is a bit misleading because the factor _is_ measured in terms of percent (not "per-cent", nor "per cent", see https://writingexplained.org/per-cent-or-percent-difference). The fact that we multiply by the number and divide by 100 makes it a percentage, see e.g. https://github.com/git/git/blob/v2.37.1/range-diff.c#L331: c = a_util->matching < 0 ? a_util->diffsize * creation_factor / 100 : COST_MAX; The reason why I chose to write `<percent>` in the original patch (https://github.com/git/git/commit/ba931edd284f) is to avoid confusion: 0.6 would be a factor, equivalent to 60%. But I had carefully decided not to extend the `parse_options()` machinery to allow for floating point numbers, hence I chose to allow specifying the factor in terms of a percentage, which could be specified as an integer value. I _just_ noticed a minute ago, though, that the synopsis makes the mistake of describing the value as a `<factor>`, that's on me. As to the original claim that percentages only go from 0-100, that is easily refuted. If you wanted to pay $12 for something but ended up having to pay $30, you'll end up having paid 150% more than planned. There you are. A percentage that is greater than 100. In this context, the explanation in https://git-scm.com/docs/git-range-diff#_algorithm reveals how this percentage is used: to determine the cost of _not_ pairing a patch on one side of the range-diff with a patch on the other side, in terms that are relative to the line count of the diff of said patch. The cost of pairing two patches is the line count of the _diff between their diffs_. This also explains why the default value of the creation factor is not 100% (as the original poster might have come to expect) but instead 60%, a value that was at first picked out of thin air, but that turned out to be reasonable: https://github.com/trast/tbdiff/commit/92ed41c84a89c. Side note: One of my math teachers insisted on _not_ calling percent a unit, as it is by definition unit-less: a percentage leaves the unit of the value it modifies unchanged. Which is absolutely true. So I think we should heed that advice here and avoid calling `%` a unit. Ciao, Dscho > 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@pobox.com> > --- > 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. > > > >
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > As to the original claim that percentages only go from 0-100, that is > easily refuted. If you wanted to pay $12 for something but ended up having > to pay $30, you'll end up having paid 150% more than planned. There you > are. A percentage that is greater than 100. Playing word games and nitpicks on what I said may have helped you stroke your ego and annoy other folks (including me) in the discussion, but unfortunately I do not think it is helping us get closer to improve either the documentation or behaviour of range-diff. Now, let's be a bit more constructive and find a way to unconfuse people like the original reporter? When we say an option's value is expressed in <percent>, unless we are careful, people will assume that the valid value the option will take will lie between 0 and 100, and you cannot blame them. IOW, while the word "percent" may be 100% correct in your mind, the way it is used to describe the feature in "git range-diff --help", it was not sufficient to help readers. If we were describing a hypothetical Git subcommand that shows a picture of a panda, with an option to show the picture in different sizes, perhaps "git panda --scale=<percent>" option is described like so: --scale=<percent>:: Instead of showing the picture of a panda at its default size, show it scaled. "--scale=50" means show it at 50%, i.e. half the width and height. "--scale=200" would show the picture at twice the width and height. and such a description would make it plenty clear that the valid value range is not constrainted in 0..100. We'd need something similar to help users of "git range-diff". Thanks.
Junio C Hamano <gitster@pobox.com> writes: > When we say an option's value is expressed in <percent>, unless we > are careful, people will assume that the valid value the option will > take will lie between 0 and 100, and you cannot blame them. IOW, > while the word "percent" may be 100% correct in your mind, the way > it is used to describe the feature in "git range-diff --help", it > was not sufficient to help readers. Stepping back a bit, I find that saying "--creation-factor=<percent>" is like giving "--max-size=<bytes>". They both make it clear that the readers express the number in what scale, but fails to explain what the number means. It is especially hard for readers when the name of the option does not help explain what the number is, e.g. "max size, size of what?" is a valid question when dealing with "--max-size", and without the question answered, the readers cannot decide what value they want to give to achieve the effect they want. the reader would want to know what it is (e.g. maximum memory that is allowed to be allocated on heap) and how it is measured (i.e. in bytes). The former helps the readers guess what a reasonable value they want to specify is (e.g. "I can afford to dedicate yMB"), and the latter is essential for the readers to decide how exactly they express what they chose (e.g. "I want to give yMB, but it is measured in bytes, so I'll write y * 10^20 here"). We need both. So _after_ they decide that 1.20 is the right number they want to give to --creation-factor, the knowledge that the number is expressed as percent does help them to write --creation-factor=120 correctly (not --creation-factor=1.20). But for readers to come up with the number 1.20, there needs a better explanation of what the number means in the first place. "Go read the algorithm section" is better than having nothing there, but we should be able to do better by having a simple-to-understand single paragraph description. Thanks.
Hello, everybody. Sorry, if I bring back old theme, but --creation-factor again bother me. When I provide a bit higher value, then command compares wrong commits. I attached the file with my branches and two git commands with creation factor of 108 and 109 respectively. For second case, when I used 109, I get unexpected output from git. Two unrelated commits are compared. Could it be possible to consider commit messages? In my case commit messages "Renamed: replace -> update" are same and are located in same point of history. Thus, to my mind, they should be diffed. -- Best regards, Eugen Konkov git version 2.40.0 Expected output: git range-diff --creation-factor=108 modalnew...refactoring 1: d1bbaf5 ! 1: 015bc3e Renamed: replace -> update @@ src/views/blocks/common/form.html: response<br> $( '#ajax-form' ).data( 'replace-form', 'yes' ); " value="Replace form"/> + + ## src/views/blocks/common/modal.html ## +@@ + <br> + <!-- Form should not be closed if content received --> + <button type="submit" class="btn btn-primary" onclick=" +- $( this.form ).attr( 'action', '/replace-content.html' ); +- ">Send 200 & display</button><br> ++ $( this.form ).attr( 'action', '/update-content.html' ); ++ ">Send 200 & display HTML</button><br> + <button type="submit" class="btn btn-primary" onclick=" +- $( this.form ).attr( 'action', '/replace-content.json' ); +- ">Send 200 & display</button><br> ++ $( this.form ).attr( 'action', '/update-content.json' ); ++ ">Send 200 & display JSON</button><br> + + <br> + <!-- Form should not be closed if error occur --> 2: d7792ad = 2: 62343cd Implemented tests for messages with different types 3: c681ba1 = 3: 307203e Removed ajaxFormModal: No reason to duplicate code 4: 1c0919e = 4: 804922f Changed function name: give_name ->after_submit_handler_name 5: 9cdaeb3 = 5: 50573a9 Improved text on example page 6: 0e8defa = 6: 4263831 Renamed flag which controls how deal with new content: replace-form -> replace-me 7: 068723b = 7: 3ac9601 Removed outdated example 8: c7f6e55 = 8: 05f4206 Renamed: form -> containerEl 9: 8405d9e = 9: 9b58983 FIXED: html not defined 10: 90e76c0 = 10: d169cf6 Remove useless parameter 11: fe80807 = 11: 31dc239 Added more logging and messages to user 12: 46caa01 = 12: 2f235a5 Implement and reuse processResponse -: ------- > 13: b2c417e Renamed: form -> triggerEl -: ------- > 14: 39470fb Moved code to its own function -: ------- > 15: 1ed3596 Pass target element explicitly -: ------- > 16: 305ea24 Be more explecit about content -: ------- > 17: a3b1bb2 Improved displayResponse -: ------- > 18: aa25331 Improved examples for lazy loading -: ------- > 19: 5183551 Improved documentation for lazy_load -: ------- > 20: 3632554 Improved text for examples -: ------- > 21: 1586539 Options should be on trigger element and not on target -: ------- > 22: ef069d7 Improved comment -: ------- > 23: e9ae2a3 Improved documentation -: ------- > 24: 395ddf9 Do not close modal window when ESC is keypressed and there is not an active modal window -: ------- > 25: fa75d0e Implemented deprecation message about 'data-close-modal' -: ------- > 26: 5daa3ef Close modal when response was processed -: ------- > 27: f83a68e Improved example message -: ------- > 28: 5790dc8 Extended tests for button/input/link -: ------- > 29: a19a3ae BUGFIX: Do not scroll when a link button is pressed -: ------- > 30: 3928191 Hint type was changed: warning -> error -: ------- > 31: a023d27 Issue warning when we are trying to load content into button -: ------- > 32: 9fc16f6 Put simple functionality first -: ------- > 33: daad594 Typo fix -: ------- > 34: 53329f9 Removed A::SaveData module -: ------- > 35: deecd9c Simplified code -: ------- > 36: 8c8dbc0 Removed Example.pm -: ------- > 37: 5016343 Update to Mojolicious v9.31 -: ------- > 38: 3bc7958 Updated modules -: ------- > 39: 95a704d Install missed module -: ------- > 40: 802df67 This project does not have Globals. We provide modules location via command line -: ------- > 41: 05cf81a Do not query live servers while testing Not expected output: git range-diff --creation-factor=109 modalnew...refactoring -: ------- > 1: 015bc3e Renamed: replace -> update 2: d7792ad = 2: 62343cd Implemented tests for messages with different types 3: c681ba1 = 3: 307203e Removed ajaxFormModal: No reason to duplicate code 4: 1c0919e = 4: 804922f Changed function name: give_name ->after_submit_handler_name 5: 9cdaeb3 = 5: 50573a9 Improved text on example page 6: 0e8defa = 6: 4263831 Renamed flag which controls how deal with new content: replace-form -> replace-me 7: 068723b = 7: 3ac9601 Removed outdated example 8: c7f6e55 = 8: 05f4206 Renamed: form -> containerEl 9: 8405d9e = 9: 9b58983 FIXED: html not defined 10: 90e76c0 = 10: d169cf6 Remove useless parameter 11: fe80807 = 11: 31dc239 Added more logging and messages to user 12: 46caa01 = 12: 2f235a5 Implement and reuse processResponse -: ------- > 13: b2c417e Renamed: form -> triggerEl -: ------- > 14: 39470fb Moved code to its own function -: ------- > 15: 1ed3596 Pass target element explicitly -: ------- > 16: 305ea24 Be more explecit about content -: ------- > 17: a3b1bb2 Improved displayResponse -: ------- > 18: aa25331 Improved examples for lazy loading -: ------- > 19: 5183551 Improved documentation for lazy_load -: ------- > 20: 3632554 Improved text for examples -: ------- > 21: 1586539 Options should be on trigger element and not on target -: ------- > 22: ef069d7 Improved comment -: ------- > 23: e9ae2a3 Improved documentation -: ------- > 24: 395ddf9 Do not close modal window when ESC is keypressed and there is not an active modal window -: ------- > 25: fa75d0e Implemented deprecation message about 'data-close-modal' -: ------- > 26: 5daa3ef Close modal when response was processed -: ------- > 27: f83a68e Improved example message -: ------- > 28: 5790dc8 Extended tests for button/input/link -: ------- > 29: a19a3ae BUGFIX: Do not scroll when a link button is pressed -: ------- > 30: 3928191 Hint type was changed: warning -> error -: ------- > 31: a023d27 Issue warning when we are trying to load content into button -: ------- > 32: 9fc16f6 Put simple functionality first -: ------- > 33: daad594 Typo fix -: ------- > 34: 53329f9 Removed A::SaveData module -: ------- > 35: deecd9c Simplified code -: ------- > 36: 8c8dbc0 Removed Example.pm -: ------- > 37: 5016343 Update to Mojolicious v9.31 1: d1bbaf5 ! 38: 3bc7958 Renamed: replace -> update @@ Metadata Author: Eugen Konkov <konkove@gmail.com> ## Commit message ## - Renamed: replace -> update + Updated modules - Because we just send content and not command to from interface - - ## gulp/config-mock.js ## -@@ - module.exports = { - option: { -- "/replace-content.html": { -+ "/update-content.html": { - "GET": { - code: "200", - header: [ "Content-Type", "text/html" ], -- file: "mock/replace-content.html", -+ file: "mock/update-content.html", - }, - }, - -- "/replace-content.json": { -+ "/update-content.json": { - "GET": { - code: "200", -- file: "mock/replace-content.json", -+ file: "mock/update-content.json", - }, - }, - - - ## mock/replace-content.html => mock/update-content.html ## - - ## mock/replace-content.json => mock/update-content.json ## - - ## src/views/blocks/common/form.html ## -@@ src/views/blocks/common/form.html: response<br> - - <br> - <input type='submit' class="btn btn-primary" style="width: 170px" onclick=" -- $( '#ajax-form' ).attr( 'action', '/replace-content.html' ); -+ $( '#ajax-form' ).attr( 'action', '/update-content.html' ); - " value="No replacement"/> - - <input type='submit' class="btn btn-primary" style="width: 170px" onclick=" -- $( '#ajax-form' ).attr( 'action', '/replace-content.html' ); -+ $( '#ajax-form' ).attr( 'action', '/update-content.html' ); - $( '#ajax-form' ).data( 'load-to', '#form-result' ); - " value="Load into target"/> - - <input type='submit' class="btn btn-primary" style="width: 170px" onclick=" -- $( '#ajax-form' ).attr( 'action', '/replace-content.json' ); -+ $( '#ajax-form' ).attr( 'action', '/update-content.json' ); - $( '#ajax-form' ).data( 'replace-form', 'yes' ); - " value="Replace form"/> - + ## cpanfile.snapshot ## +@@ cpanfile.snapshot: DISTRIBUTIONS + Algorithm::Diff::_impl 1.201 + requirements: + ExtUtils::MakeMaker 0 ++ Algorithm-Loops-1.032 ++ pathname: T/TY/TYEMQ/Algorithm-Loops-1.032.tar.gz ++ provides: ++ Algorithm::Loops 1.032 ++ requirements: ++ ExtUtils::MakeMaker 0 + App-cpm-0.997011 + pathname: S/SK/SKAJI/App-cpm-0.997011.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + ExtUtils::MakeMaker 0 + Math::BigInt 0 + perl 5.006 +- DBD-Pg-3.15.1 +- pathname: T/TU/TURNSTEP/DBD-Pg-3.15.1.tar.gz ++ DBD-Pg-3.16.1 ++ pathname: T/TU/TURNSTEP/DBD-Pg-3.16.1.tar.gz + provides: +- Bundle::DBD::Pg v3.15.1 +- DBD::Pg v3.15.1 ++ Bundle::DBD::Pg v3.16.1 ++ DBD::Pg v3.16.1 + requirements: +- DBI 1.614 +- ExtUtils::MakeMaker 6.11 +- File::Temp 0 +- Test::More 0.88 +- Time::HiRes 0 +- version 0 + DBD-SQLite-1.70 + pathname: I/IS/ISHIGAKI/DBD-SQLite-1.70.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + Sub::Install 0.921 + strict 0 + warnings 0 +- Data-Printer-1.000004 +- pathname: G/GA/GARU/Data-Printer-1.000004.tar.gz ++ Data-Printer-1.001000 ++ pathname: G/GA/GARU/Data-Printer-1.001000.tar.gz + provides: +- DDP undef +- Data::Printer 1.000004 ++ DDP 1.001000 ++ Data::Printer 1.001000 + Data::Printer::Common undef + Data::Printer::Config undef + Data::Printer::Filter undef +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.006 + strict 0 + warnings 0 +- DateTime-1.58 +- pathname: D/DR/DROLSKY/DateTime-1.58.tar.gz +- provides: +- DateTime 1.58 +- DateTime::Duration 1.58 +- DateTime::Helpers 1.58 +- DateTime::Infinite 1.58 +- DateTime::Infinite::Future 1.58 +- DateTime::Infinite::Past 1.58 +- DateTime::LeapSecond 1.58 +- DateTime::PP 1.58 +- DateTime::PPExtra 1.58 +- DateTime::Types 1.58 ++ DateTime-1.59 ++ pathname: D/DR/DROLSKY/DateTime-1.59.tar.gz ++ provides: ++ DateTime 1.59 ++ DateTime::Duration 1.59 ++ DateTime::Helpers 1.59 ++ DateTime::Infinite 1.59 ++ DateTime::Infinite::Future 1.59 ++ DateTime::Infinite::Past 1.59 ++ DateTime::LeapSecond 1.59 ++ DateTime::PP 1.59 ++ DateTime::PPExtra 1.59 ++ DateTime::Types 1.59 + requirements: + Carp 0 + DateTime::Locale 1.06 +@@ cpanfile.snapshot: DISTRIBUTIONS + Specio::Subs 0 + Try::Tiny 0 + XSLoader 0 +- base 0 + integer 0 + namespace::autoclean 0.19 + overload 0 +@@ cpanfile.snapshot: DISTRIBUTIONS + ExtUtils::MakeMaker 0 + Sub::Exporter::Progressive 0.001011 + perl 5.006 ++ Devel-GlobalPhase-0.003003 ++ pathname: H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz ++ provides: ++ Devel::GlobalPhase 0.003003 ++ requirements: ++ perl 5.008 + Devel-OverloadInfo-0.007 + pathname: I/IL/ILMARI/Devel-OverloadInfo-0.007.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.006 + strict 0 + warnings 0 +- Digest-HMAC-1.04 +- pathname: A/AR/ARODLAND/Digest-HMAC-1.04.tar.gz +- provides: +- Digest::HMAC 1.04 +- Digest::HMAC_MD5 1.04 +- Digest::HMAC_SHA1 1.04 +- requirements: +- Digest::MD5 2 +- Digest::SHA 1 +- ExtUtils::MakeMaker 0 +- perl 5.004 + Dist-CheckConflicts-0.11 + pathname: D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + requirements: + ExtUtils::MakeMaker 0 + Mail::Address 0 +- Net::DNS 0 + Scalar::Util 0 + Test::More 0 + perl 5.006 +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.006 + strict 0 + warnings 0 ++ ExtUtils-Install-2.20 ++ pathname: B/BI/BINGOS/ExtUtils-Install-2.20.tar.gz ++ provides: ++ ExtUtils::Install 2.20 ++ ExtUtils::Install::Warn 2.20 ++ ExtUtils::Installed 2.20 ++ ExtUtils::Packlist 2.20 ++ requirements: ++ Carp 0 ++ Cwd 0 ++ ExtUtils::MakeMaker 0 ++ File::Basename 0 ++ File::Compare 0 ++ File::Copy 0 ++ File::Find 0 ++ File::Path 0 ++ File::Spec 0 ++ File::Temp 0 ++ Test::More 0.47 ++ perl 5.006 + ExtUtils-InstallPaths-0.012 + pathname: L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.006 + strict 0 + warnings 0 ++ ExtUtils-MakeMaker-7.64 ++ pathname: B/BI/BINGOS/ExtUtils-MakeMaker-7.64.tar.gz ++ provides: ++ ExtUtils::Command 7.64 ++ ExtUtils::Command::MM 7.64 ++ ExtUtils::Liblist 7.64 ++ ExtUtils::Liblist::Kid 7.64 ++ ExtUtils::MM 7.64 ++ ExtUtils::MM_AIX 7.64 ++ ExtUtils::MM_Any 7.64 ++ ExtUtils::MM_BeOS 7.64 ++ ExtUtils::MM_Cygwin 7.64 ++ ExtUtils::MM_DOS 7.64 ++ ExtUtils::MM_Darwin 7.64 ++ ExtUtils::MM_MacOS 7.64 ++ ExtUtils::MM_NW5 7.64 ++ ExtUtils::MM_OS2 7.64 ++ ExtUtils::MM_OS390 7.64 ++ ExtUtils::MM_QNX 7.64 ++ ExtUtils::MM_UWIN 7.64 ++ ExtUtils::MM_Unix 7.64 ++ ExtUtils::MM_VMS 7.64 ++ ExtUtils::MM_VOS 7.64 ++ ExtUtils::MM_Win32 7.64 ++ ExtUtils::MM_Win95 7.64 ++ ExtUtils::MY 7.64 ++ ExtUtils::MakeMaker 7.64 ++ ExtUtils::MakeMaker::Config 7.64 ++ ExtUtils::MakeMaker::Locale 7.64 ++ ExtUtils::MakeMaker::_version 7.64 ++ ExtUtils::MakeMaker::charstar 7.64 ++ ExtUtils::MakeMaker::version 7.64 ++ ExtUtils::MakeMaker::version::regex 7.64 ++ ExtUtils::MakeMaker::version::vpp 7.64 ++ ExtUtils::Mkbootstrap 7.64 ++ ExtUtils::Mksymlists 7.64 ++ ExtUtils::testlib 7.64 ++ MM 7.64 ++ MY 7.64 ++ requirements: ++ Data::Dumper 0 ++ Encode 0 ++ File::Basename 0 ++ File::Spec 0.8 ++ Pod::Man 0 ++ perl 5.006 + ExtUtils-MakeMaker-CPANfile-0.09 + pathname: I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + File::Which 0.05 + POSIX 0 + perl 5.008003 ++ File-Listing-6.15 ++ pathname: P/PL/PLICEASE/File-Listing-6.15.tar.gz ++ provides: ++ File::Listing 6.15 ++ File::Listing::apache 6.15 ++ File::Listing::dosftp 6.15 ++ File::Listing::netware 6.15 ++ File::Listing::unix 6.15 ++ File::Listing::vms 6.15 ++ requirements: ++ Exporter 5.57 ++ ExtUtils::MakeMaker 0 ++ HTTP::Date 0 ++ perl 5.006 + File-Remove-1.61 + pathname: S/SH/SHLOMIF/File-Remove-1.61.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.006 + strict 0 + warnings 0 ++ Filter-signatures-0.17 ++ pathname: C/CO/CORION/Filter-signatures-0.17.tar.gz ++ provides: ++ Filter::signatures 0.17 ++ requirements: ++ ExtUtils::MakeMaker 0 ++ Filter::Simple 0.91 ++ perl 5.006 ++ Future-0.48 ++ pathname: P/PE/PEVANS/Future-0.48.tar.gz ++ provides: ++ Future 0.48 ++ Future::Exception 0.48 ++ Future::Mutex 0.48 ++ Future::Queue 0.48 ++ Future::Utils 0.48 ++ Test::Future 0.48 ++ Test::Future::Deferred 0.48 ++ requirements: ++ Carp 1.25 ++ Module::Build 0.4004 ++ Test::Builder::Module 0 ++ Time::HiRes 0 ++ perl 5.010 ++ Future-HTTP-0.14 ++ pathname: C/CO/CORION/Future-HTTP-0.14.tar.gz ++ provides: ++ Future::HTTP 0.14 ++ Future::HTTP::AnyEvent 0.14 ++ Future::HTTP::Handler 0.14 ++ Future::HTTP::Mojo 0.14 ++ Future::HTTP::NetAsync 0.14 ++ Future::HTTP::Tiny 0.14 ++ Future::HTTP::Tiny::Paranoid 0.14 ++ requirements: ++ ExtUtils::MakeMaker 0 ++ Filter::signatures 0.13 ++ Future 0.31 ++ HTTP::Headers 6.07 ++ HTTP::Tiny 0 ++ Moo 2 ++ perl 5.006 + Getopt-Long-Descriptive-0.110 + pathname: R/RJ/RJBS/Getopt-Long-Descriptive-0.110.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.012 + strict 0 + warnings 0 ++ HTML-Form-6.07 ++ pathname: O/OA/OALDERS/HTML-Form-6.07.tar.gz ++ provides: ++ HTML::Form 6.07 ++ HTML::Form::FileInput 6.07 ++ HTML::Form::IgnoreInput 6.07 ++ HTML::Form::ImageInput 6.07 ++ HTML::Form::Input 6.07 ++ HTML::Form::KeygenInput 6.07 ++ HTML::Form::ListInput 6.07 ++ HTML::Form::SubmitInput 6.07 ++ HTML::Form::TextInput 6.07 ++ requirements: ++ Carp 0 ++ Encode 2 ++ ExtUtils::MakeMaker 0 ++ HTML::TokeParser 0 ++ HTTP::Request 6 ++ HTTP::Request::Common 6.03 ++ URI 1.10 ++ perl 5.008001 ++ strict 0 ++ vars 0 + HTML-Parser-3.78 + pathname: O/OA/OALDERS/HTML-Parser-3.78.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + URI::URL 0 + XSLoader 0 + strict 0 ++ HTML-Selector-XPath-0.26 ++ pathname: C/CO/CORION/HTML-Selector-XPath-0.26.tar.gz ++ provides: ++ HTML::Selector::XPath 0.26 ++ requirements: ++ Carp 0 ++ Exporter 0 ++ ExtUtils::MakeMaker 0 ++ perl 5.008001 ++ strict 0 + HTML-Tagset-3.20 + pathname: P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz + provides: + HTML::Tagset 3.20 + requirements: + ExtUtils::MakeMaker 0 ++ HTML-Tree-5.07 ++ pathname: K/KE/KENTNL/HTML-Tree-5.07.tar.gz ++ provides: ++ HTML::AsSubs 5.07 ++ HTML::Element 5.07 ++ HTML::Element::traverse 5.07 ++ HTML::Parse 5.07 ++ HTML::Tree 5.07 ++ HTML::TreeBuilder 5.07 ++ requirements: ++ Carp 0 ++ Encode 0 ++ Exporter 0 ++ HTML::Entities 0 ++ HTML::Parser 3.46 ++ HTML::Tagset 3.02 ++ Module::Build 0.2808 ++ Scalar::Util 0 ++ Test::Fatal 0 ++ Test::More 0 ++ base 0 ++ integer 0 ++ perl 5.008 ++ HTTP-Cookies-6.10 ++ pathname: O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz ++ provides: ++ HTTP::Cookies 6.10 ++ HTTP::Cookies::Microsoft 6.10 ++ HTTP::Cookies::Netscape 6.10 ++ requirements: ++ Carp 0 ++ ExtUtils::MakeMaker 0 ++ HTTP::Date 6 ++ HTTP::Headers::Util 6 ++ HTTP::Request 0 ++ locale 0 ++ perl 5.008001 ++ strict 0 + HTTP-Date-6.05 + pathname: O/OA/OALDERS/HTTP-Date-6.05.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.008001 + strict 0 + warnings 0 ++ HTTP-Negotiate-6.01 ++ pathname: G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz ++ provides: ++ HTTP::Negotiate 6.01 ++ requirements: ++ ExtUtils::MakeMaker 0 ++ HTTP::Headers 6 ++ perl 5.008001 + HTTP-Tinyish-0.17 + pathname: M/MI/MIYAGAWA/HTTP-Tinyish-0.17.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + ExtUtils::MakeMaker 0 + Scalar::Util 0 + perl 5.008001 ++ IO-Async-0.801 ++ pathname: P/PE/PEVANS/IO-Async-0.801.tar.gz ++ provides: ++ Future::IO::Impl::IOAsync undef ++ IO::Async 0.801 ++ IO::Async::Channel 0.801 ++ IO::Async::Debug 0.801 ++ IO::Async::File 0.801 ++ IO::Async::FileStream 0.801 ++ IO::Async::Function 0.801 ++ IO::Async::Future 0.801 ++ IO::Async::Handle 0.801 ++ IO::Async::Internals::ChildManager 0.801 ++ IO::Async::Internals::FunctionWorker 0.801 ++ IO::Async::Listener 0.801 ++ IO::Async::Loop 0.801 ++ IO::Async::Loop::Poll 0.801 ++ IO::Async::Loop::Select 0.801 ++ IO::Async::LoopTests 0.801 ++ IO::Async::Metrics undef ++ IO::Async::Notifier 0.801 ++ IO::Async::OS 0.801 ++ IO::Async::OS::MSWin32 0.801 ++ IO::Async::OS::cygwin 0.801 ++ IO::Async::OS::linux 0.801 ++ IO::Async::PID 0.801 ++ IO::Async::Process 0.801 ++ IO::Async::Protocol 0.801 ++ IO::Async::Protocol::LineStream 0.801 ++ IO::Async::Protocol::Stream 0.801 ++ IO::Async::Resolver 0.801 ++ IO::Async::Routine 0.801 ++ IO::Async::Signal 0.801 ++ IO::Async::Socket 0.801 ++ IO::Async::Stream 0.801 ++ IO::Async::Test 0.801 ++ IO::Async::Timer 0.801 ++ IO::Async::Timer::Absolute 0.801 ++ IO::Async::Timer::Countdown 0.801 ++ IO::Async::Timer::Periodic 0.801 ++ requirements: ++ Exporter 5.57 ++ File::stat 0 ++ Future 0.33 ++ Future::Utils 0.18 ++ IO::Poll 0 ++ List::Util 0 ++ Module::Build 0.4004 ++ Socket 2.007 ++ Storable 0 ++ Struct::Dumb 0 ++ Time::HiRes 0 ++ perl 5.008004 + IO-HTML-1.004 + pathname: C/CJ/CJM/IO-HTML-1.004.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + ExtUtils::MakeMaker 0 + Test::More 0.31 + Time::HiRes 0 ++ Imager-1.019 ++ pathname: T/TO/TONYC/Imager-1.019.tar.gz ++ provides: ++ Imager 1.019 ++ Imager::Color 1.015 ++ Imager::Color::Float 1.008 ++ Imager::Color::Table 1.004 ++ Imager::CountColor 0.03 ++ Imager::Expr 1.008 ++ Imager::Expr::Assem 1.004 ++ Imager::Expr::Infix 1.008 ++ Imager::Expr::Postfix 1.008 ++ Imager::ExtUtils 1.003 ++ Imager::FORMATS 1.019 ++ Imager::File::CUR 1.000 ++ Imager::File::ICO 0.08 ++ Imager::File::SGI 0.05 ++ Imager::Fill 1.013 ++ Imager::Filter::DynTest 0.03 ++ Imager::Filter::Flines 0.04 ++ Imager::Filter::Mandelbrot 0.05 ++ Imager::Font 1.039 ++ Imager::Font::BBox 1.007 ++ Imager::Font::FreeType2 1.021 ++ Imager::Font::Image 1.000 ++ Imager::Font::Test 1.002 ++ Imager::Font::Truetype 1.013 ++ Imager::Font::Type1 1.013 ++ Imager::Font::Wrap 1.005 ++ Imager::Fountain 1.009 ++ Imager::IO 1.019 ++ Imager::Matrix2d 1.013 ++ Imager::Preprocess 1.003 ++ Imager::Probe 1.008 ++ Imager::Regops 1.000 ++ Imager::Test 1.007 ++ Imager::Test::OverUtf8 1.007 ++ Imager::Transform 1.007 ++ Imager::TrimColorList 1.000 ++ requirements: ++ Exporter 5.57 ++ ExtUtils::MakeMaker 0 ++ Scalar::Util 1.00 ++ Test::More 0.99 ++ XSLoader 0 ++ Imager-File-PNG-0.99 ++ pathname: T/TO/TONYC/Imager-File-PNG-0.99.tar.gz ++ provides: ++ Imager::File::PNG 0.99 ++ requirements: ++ ExtUtils::MakeMaker 0 ++ Imager 0.90 ++ XSLoader 0 + Import-Into-1.002005 + pathname: H/HA/HAARG/Import-Into-1.002005.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.006 + strict 0 + warnings 0 ++ JSON-4.07 ++ pathname: I/IS/ISHIGAKI/JSON-4.07.tar.gz ++ provides: ++ JSON 4.07 ++ JSON::Backend::PP 4.07 ++ requirements: ++ ExtUtils::MakeMaker 0 ++ Test::More 0 + JSON-MaybeXS-1.004003 + pathname: E/ET/ETHER/JSON-MaybeXS-1.004003.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + ExtUtils::MakeMaker 0 + Moo 1.003 + Scalar::Util 0 ++ Log-Log4perl-1.57 ++ pathname: E/ET/ETJ/Log-Log4perl-1.57.tar.gz ++ provides: ++ L4pResurrectable 0.01 ++ Log::Log4perl 1.57 ++ Log::Log4perl::Appender undef ++ Log::Log4perl::Appender::Buffer 1.53 ++ Log::Log4perl::Appender::DBI undef ++ Log::Log4perl::Appender::File undef ++ Log::Log4perl::Appender::Limit 1.53 ++ Log::Log4perl::Appender::RRDs undef ++ Log::Log4perl::Appender::Screen undef ++ Log::Log4perl::Appender::ScreenColoredLevels undef ++ Log::Log4perl::Appender::Socket undef ++ Log::Log4perl::Appender::String undef ++ Log::Log4perl::Appender::Synchronized 1.53 ++ Log::Log4perl::Appender::TestArrayBuffer undef ++ Log::Log4perl::Appender::TestBuffer undef ++ Log::Log4perl::Appender::TestFileCreeper undef ++ Log::Log4perl::Catalyst 1.53 ++ Log::Log4perl::Config undef ++ Log::Log4perl::Config::BaseConfigurator undef ++ Log::Log4perl::Config::DOMConfigurator 0.03 ++ Log::Log4perl::Config::PropertyConfigurator undef ++ Log::Log4perl::Config::Watch undef ++ Log::Log4perl::DateFormat undef ++ Log::Log4perl::Filter undef ++ Log::Log4perl::Filter::Boolean undef ++ Log::Log4perl::Filter::LevelMatch undef ++ Log::Log4perl::Filter::LevelRange undef ++ Log::Log4perl::Filter::MDC undef ++ Log::Log4perl::Filter::StringMatch undef ++ Log::Log4perl::InternalDebug undef ++ Log::Log4perl::JavaMap undef ++ Log::Log4perl::JavaMap::ConsoleAppender undef ++ Log::Log4perl::JavaMap::FileAppender undef ++ Log::Log4perl::JavaMap::JDBCAppender undef ++ Log::Log4perl::JavaMap::NTEventLogAppender undef ++ Log::Log4perl::JavaMap::RollingFileAppender undef ++ Log::Log4perl::JavaMap::SyslogAppender undef ++ Log::Log4perl::JavaMap::TestBuffer undef ++ Log::Log4perl::Layout undef ++ Log::Log4perl::Layout::NoopLayout undef ++ Log::Log4perl::Layout::PatternLayout undef ++ Log::Log4perl::Layout::PatternLayout::Multiline undef ++ Log::Log4perl::Layout::SimpleLayout undef ++ Log::Log4perl::Level undef ++ Log::Log4perl::Logger undef ++ Log::Log4perl::MDC undef ++ Log::Log4perl::NDC undef ++ Log::Log4perl::Resurrector undef ++ Log::Log4perl::Util undef ++ Log::Log4perl::Util::Semaphore undef ++ Log::Log4perl::Util::TimeTracker undef ++ requirements: ++ ExtUtils::MakeMaker 0 ++ File::Path 2.07 ++ File::Spec 0.82 ++ perl 5.006 + MIME-Charset-1.012.2 + pathname: N/NE/NEZUMI/MIME-Charset-1.012.2.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.012 + strict 0 + warnings 0 +- Modern-Perl-1.20220515 +- pathname: C/CH/CHROMATIC/Modern-Perl-1.20220515.tar.gz ++ Modern-Perl-1.20230106 ++ pathname: C/CH/CHROMATIC/Modern-Perl-1.20230106.tar.gz + provides: +- Modern::Perl 1.20220515 +- odern::Perl 1.20220515 ++ Modern::Perl 1.20230106 ++ odern::Perl 1.20230106 + requirements: + ExtUtils::MakeMaker 0 + IO::File 0 +@@ cpanfile.snapshot: DISTRIBUTIONS + File::Spec 3.00 + File::Spec::Functions 0 + if 0 +- perl 5.005030 ++ perl 5.00503 + strict 0 + Module-Runtime-0.016 + pathname: Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz +@@ cpanfile.snapshot: DISTRIBUTIONS + Scalar::Util 0 + YAML::PP 0.027 + perl 5.008001 +- Mojolicious-9.26 +- pathname: S/SR/SRI/Mojolicious-9.26.tar.gz ++ Mojolicious-9.31 ++ pathname: S/SR/SRI/Mojolicious-9.31.tar.gz + provides: + Mojo undef + Mojo::Asset undef +@@ cpanfile.snapshot: DISTRIBUTIONS + Mojo::UserAgent::Transactor undef + Mojo::Util undef + Mojo::WebSocket undef +- Mojolicious 9.26 ++ Mojolicious 9.31 + Mojolicious::Command undef + Mojolicious::Command::Author::cpanify undef + Mojolicious::Command::Author::generate undef +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.008001 + strict 0 + warnings 0 +- Net-DNS-1.34 +- pathname: N/NL/NLNETLABS/Net-DNS-1.34.tar.gz +- provides: +- Net::DNS 1.34 +- Net::DNS::Domain 1855 +- Net::DNS::DomainName 1855 +- Net::DNS::DomainName1035 1855 +- Net::DNS::DomainName2535 1855 +- Net::DNS::Header 1855 +- Net::DNS::Mailbox 1855 +- Net::DNS::Mailbox1035 1855 +- Net::DNS::Mailbox2535 1855 +- Net::DNS::Nameserver 1860 +- Net::DNS::Packet 1865 +- Net::DNS::Parameters 1865 +- Net::DNS::Question 1855 +- Net::DNS::RR 1864 +- Net::DNS::RR::A 1857 +- Net::DNS::RR::AAAA 1857 +- Net::DNS::RR::AFSDB 1857 +- Net::DNS::RR::AMTRELAY 1855 +- Net::DNS::RR::APL 1857 +- Net::DNS::RR::APL::Item 1857 +- Net::DNS::RR::CAA 1857 +- Net::DNS::RR::CDNSKEY 1857 +- Net::DNS::RR::CDS 1857 +- Net::DNS::RR::CERT 1856 +- Net::DNS::RR::CNAME 1857 +- Net::DNS::RR::CSYNC 1857 +- Net::DNS::RR::DHCID 1857 +- Net::DNS::RR::DNAME 1857 +- Net::DNS::RR::DNSKEY 1856 +- Net::DNS::RR::DS 1856 +- Net::DNS::RR::EUI48 1857 +- Net::DNS::RR::EUI64 1857 +- Net::DNS::RR::GPOS 1857 +- Net::DNS::RR::HINFO 1857 +- Net::DNS::RR::HIP 1857 +- Net::DNS::RR::HTTPS 1857 +- Net::DNS::RR::IPSECKEY 1857 +- Net::DNS::RR::ISDN 1857 +- Net::DNS::RR::KEY 1857 +- Net::DNS::RR::KX 1857 +- Net::DNS::RR::L32 1857 +- Net::DNS::RR::L64 1857 +- Net::DNS::RR::LOC 1857 +- Net::DNS::RR::LP 1857 +- Net::DNS::RR::MB 1857 +- Net::DNS::RR::MG 1857 +- Net::DNS::RR::MINFO 1857 +- Net::DNS::RR::MR 1857 +- Net::DNS::RR::MX 1857 +- Net::DNS::RR::NAPTR 1857 +- Net::DNS::RR::NID 1857 +- Net::DNS::RR::NS 1857 +- Net::DNS::RR::NSEC 1857 +- Net::DNS::RR::NSEC3 1857 +- Net::DNS::RR::NSEC3PARAM 1857 +- Net::DNS::RR::NULL 1857 +- Net::DNS::RR::OPENPGPKEY 1857 +- Net::DNS::RR::OPT 1864 +- Net::DNS::RR::OPT::CHAIN 1864 +- Net::DNS::RR::OPT::CLIENT_SUBNET 1864 +- Net::DNS::RR::OPT::COOKIE 1864 +- Net::DNS::RR::OPT::DAU 1864 +- Net::DNS::RR::OPT::DHU 1864 +- Net::DNS::RR::OPT::EXPIRE 1864 +- Net::DNS::RR::OPT::EXTENDED_ERROR 1864 +- Net::DNS::RR::OPT::KEY_TAG 1864 +- Net::DNS::RR::OPT::N3U 1864 +- Net::DNS::RR::OPT::PADDING 1864 +- Net::DNS::RR::OPT::TCP_KEEPALIVE 1864 +- Net::DNS::RR::PTR 1857 +- Net::DNS::RR::PX 1857 +- Net::DNS::RR::RP 1857 +- Net::DNS::RR::RRSIG 1856 +- Net::DNS::RR::RT 1857 +- Net::DNS::RR::SIG 1856 +- Net::DNS::RR::SMIMEA 1857 +- Net::DNS::RR::SOA 1857 +- Net::DNS::RR::SPF 1857 +- Net::DNS::RR::SRV 1857 +- Net::DNS::RR::SSHFP 1857 +- Net::DNS::RR::SVCB 1857 +- Net::DNS::RR::TKEY 1857 +- Net::DNS::RR::TLSA 1857 +- Net::DNS::RR::TSIG 1856 +- Net::DNS::RR::TXT 1857 +- Net::DNS::RR::URI 1857 +- Net::DNS::RR::X25 1857 +- Net::DNS::RR::ZONEMD 1857 +- Net::DNS::Resolver 1855 +- Net::DNS::Resolver::Base 1864 +- Net::DNS::Resolver::MSWin32 1856 +- Net::DNS::Resolver::Recurse 1856 +- Net::DNS::Resolver::UNIX 1856 +- Net::DNS::Resolver::android 1856 +- Net::DNS::Resolver::cygwin 1856 +- Net::DNS::Resolver::os2 1856 +- Net::DNS::Resolver::os390 1856 +- Net::DNS::Text 1855 +- Net::DNS::Update 1855 +- Net::DNS::ZoneFile 1855 +- Net::DNS::ZoneFile::Generator 1855 +- Net::DNS::ZoneFile::Text 1855 +- requirements: +- Carp 1.1 +- Digest::HMAC 1.03 +- Digest::MD5 2.13 +- Digest::SHA 5.23 +- Encode 2.26 +- Exporter 5.56 +- ExtUtils::MakeMaker 6.66 +- File::Spec 0.86 +- Getopt::Long 2.43 +- IO::File 1.08 +- IO::Select 1.14 +- IO::Socket 1.26 +- IO::Socket::IP 0.38 +- MIME::Base64 2.13 +- PerlIO 1.05 +- Scalar::Util 1.25 +- Time::Local 1.19 +- perl 5.008009 ++ Net-Async-WebSocket-0.13 ++ pathname: P/PE/PEVANS/Net-Async-WebSocket-0.13.tar.gz ++ provides: ++ Net::Async::WebSocket 0.13 ++ Net::Async::WebSocket::Client 0.13 ++ Net::Async::WebSocket::Protocol 0.13 ++ Net::Async::WebSocket::Server 0.13 ++ requirements: ++ IO::Async::Listener 0.61 ++ IO::Async::Notifier 0.63 ++ IO::Async::Stream 0.34 ++ Module::Build 0.4004 ++ Protocol::WebSocket 0.22 ++ Protocol::WebSocket::Frame 0 ++ Protocol::WebSocket::Handshake::Client 0 ++ Protocol::WebSocket::Handshake::Server 0 ++ Sub::Util 1.40 ++ URI 0 ++ perl 5.010 ++ Net-HTTP-6.22 ++ pathname: O/OA/OALDERS/Net-HTTP-6.22.tar.gz ++ provides: ++ Net::HTTP 6.22 ++ Net::HTTP::Methods 6.22 ++ Net::HTTP::NB 6.22 ++ Net::HTTPS 6.22 ++ requirements: ++ Carp 0 ++ Compress::Raw::Zlib 0 ++ ExtUtils::MakeMaker 0 ++ IO::Socket::INET 0 ++ IO::Uncompress::Gunzip 0 ++ URI 0 ++ base 0 ++ perl 5.006002 ++ strict 0 ++ warnings 0 ++ Object-Import-1.005 ++ pathname: C/CO/CORION/Object-Import-1.005.tar.gz ++ provides: ++ Object::Import 1.005 ++ requirements: ++ ExtUtils::MakeMaker 0 ++ File::Temp 0 ++ IO::Handle 0 ++ MRO::Compat 0 ++ Math::BigInt 1.59 ++ Scalar::Util 0 ++ Test::More 0.47 ++ perl 5.008 ++ strict 0 ++ warnings 0 ++ PDF-WebKit-1.2 ++ pathname: M/MI/MITHALDU/PDF-WebKit-1.2.tar.gz ++ provides: ++ PDF::WebKit 1.2 ++ PDF::WebKit::Configuration undef ++ PDF::WebKit::Source undef ++ requirements: ++ ExtUtils::MakeMaker 6.42 ++ IPC::Run3 0 ++ Moo 0 ++ Test::Spec 0 ++ namespace::clean 0 ++ perl 5.008008 + Package-DeprecationManager-0.17 + pathname: D/DR/DROLSKY/Package-DeprecationManager-0.17.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.008 + strict 0 + warnings 0 +- Pod-Parser-1.65 +- pathname: M/MA/MAREKR/Pod-Parser-1.65.tar.gz +- provides: +- Pod::Cache 1.65 +- Pod::Cache::Item 1.65 +- Pod::Find 1.65 +- Pod::Hyperlink 1.65 +- Pod::InputObjects 1.65 +- Pod::InputSource 1.65 +- Pod::InteriorSequence 1.65 +- Pod::List 1.65 +- Pod::Paragraph 1.65 +- Pod::ParseTree 1.65 +- Pod::ParseUtils 1.65 +- Pod::Parser 1.65 +- Pod::PlainText 2.07 +- Pod::Select 1.65 ++ PerlX-Maybe-1.202 ++ pathname: T/TO/TOBYINK/PerlX-Maybe-1.202.tar.gz ++ provides: ++ PerlX::Maybe 1.202 ++ Syntax::Feature::Maybe 1.202 + requirements: +- Cwd 0 +- ExtUtils::MakeMaker 0 +- File::Basename 0 +- Test::More 0.6 ++ ExtUtils::MakeMaker 6.17 ++ Scalar::Util 0 ++ perl 5.006 ++ Protocol-WebSocket-0.26 ++ pathname: V/VT/VTI/Protocol-WebSocket-0.26.tar.gz ++ provides: ++ Protocol::WebSocket 0.26 ++ Protocol::WebSocket::Client undef ++ Protocol::WebSocket::Cookie undef ++ Protocol::WebSocket::Cookie::Request undef ++ Protocol::WebSocket::Cookie::Response undef ++ Protocol::WebSocket::Frame undef ++ Protocol::WebSocket::Handshake undef ++ Protocol::WebSocket::Handshake::Client undef ++ Protocol::WebSocket::Handshake::Server undef ++ Protocol::WebSocket::Message undef ++ Protocol::WebSocket::Request undef ++ Protocol::WebSocket::Response undef ++ Protocol::WebSocket::Stateful undef ++ Protocol::WebSocket::URL undef ++ requirements: ++ Carp 0 ++ Digest::MD5 0 ++ Digest::SHA 0 ++ Module::Build::Tiny 0.035 ++ Scalar::Util 0 + Regexp-Common-2017060201 + pathname: A/AB/ABIGAIL/Regexp-Common-2017060201.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + Sub::Quote 0 + Try::Tiny 0.04 + perl 5.008001 ++ Scalar-List-Utils-1.62 ++ pathname: P/PE/PEVANS/Scalar-List-Utils-1.62.tar.gz ++ provides: ++ List::Util 1.62 ++ List::Util::XS 1.62 ++ Scalar::Util 1.62 ++ Sub::Util 1.62 ++ requirements: ++ ExtUtils::MakeMaker 0 ++ perl 5.006 + Scope-Guard-0.21 + pathname: C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + perl 5.008001 + strict 0 + warnings 0 ++ Struct-Dumb-0.12 ++ pathname: P/PE/PEVANS/Struct-Dumb-0.12.tar.gz ++ provides: ++ Struct::Dumb 0.12 ++ requirements: ++ Module::Build 0.4004 + Sub-Exporter-0.988 + pathname: R/RJ/RJBS/Sub-Exporter-0.988.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + Test::Harness 3.35 + Test::More 1.302047 + Test::Warn 0.30 ++ Test-Spec-0.54 ++ pathname: A/AK/AKZHAN/Test-Spec-0.54.tar.gz ++ provides: ++ Test::Spec 0.54 ++ Test::Spec::Context undef ++ Test::Spec::Example undef ++ Test::Spec::ExportProxy 0.54 ++ Test::Spec::Mocks undef ++ Test::Spec::Mocks::Expectation undef ++ Test::Spec::Mocks::MockObject undef ++ Test::Spec::Mocks::Stub undef ++ Test::Spec::SharedHash undef ++ Test::Spec::TodoExample undef ++ requirements: ++ Carp 0 ++ Devel::GlobalPhase 0 ++ Exporter 0 ++ ExtUtils::MakeMaker 0 ++ List::Util 0 ++ Package::Stash 0.23 ++ Scalar::Util 1.11 ++ TAP::Parser 0 ++ Test::Deep 0.103 ++ Test::More 0.88 ++ Test::Trap 0 ++ Tie::IxHash 0 ++ constant 0 ++ Test-Trap-v0.3.4 ++ pathname: E/EB/EBHANSSEN/Test-Trap-v0.3.4.tar.gz ++ provides: ++ Test::Trap v0.3.4 ++ Test::Trap::Builder v0.3.4 ++ Test::Trap::Builder::PerlIO v0.3.4 ++ Test::Trap::Builder::SystemSafe v0.3.4 ++ Test::Trap::Builder::TempFile v0.3.4 ++ requirements: ++ Carp 0 ++ Config 0 ++ Data::Dump 0 ++ Exporter 0 ++ File::Temp 0 ++ IO::Handle 0 ++ Module::Build 0 ++ Test::Builder 0 ++ Test::More 0 ++ Test::Tester 0.107 ++ base 0 ++ constant 0 ++ lib 0 ++ perl v5.6.2 ++ strict 0 ++ version 0 ++ warnings 0 + Test-Warn-0.36 + pathname: B/BI/BIGJ/Test-Warn-0.36.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + Tie::Handle 0 + perl 5.006 + strict 0 ++ Tie-IxHash-1.23 ++ pathname: C/CH/CHORNY/Tie-IxHash-1.23.tar.gz ++ provides: ++ Tie::IxHash 1.23 ++ requirements: ++ Test::More 0 ++ perl 5.005 + Tie-ToObject-0.03 + pathname: N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + strict 0 + utf8 0 + warnings 0 ++ URI-ws-0.03 ++ pathname: P/PL/PLICEASE/URI-ws-0.03.tar.gz ++ provides: ++ URI::ws 0.03 ++ URI::wss 0.03 ++ requirements: ++ ExtUtils::MakeMaker 6.30 ++ URI 0 + Unicode-LineBreak-2019.001 + pathname: N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + base 0 + lib 0 + perl 5.008 ++ WWW-Mechanize-2.10 ++ pathname: O/OA/OALDERS/WWW-Mechanize-2.10.tar.gz ++ provides: ++ WWW::Mechanize 2.10 ++ WWW::Mechanize::Image 2.10 ++ WWW::Mechanize::Link 2.10 ++ requirements: ++ Carp 0 ++ ExtUtils::MakeMaker 0 ++ Getopt::Long 0 ++ HTML::Form 1.00 ++ HTML::HeadParser 0 ++ HTML::TokeParser 0 ++ HTML::TreeBuilder 5 ++ HTTP::Cookies 0 ++ HTTP::Request 1.30 ++ HTTP::Request::Common 0 ++ LWP::UserAgent 6.45 ++ Pod::Usage 0 ++ Scalar::Util 1.14 ++ Tie::RefHash 0 ++ URI::URL 0 ++ URI::file 0 ++ base 0 ++ perl 5.006 ++ strict 0 ++ warnings 0 ++ WWW-Mechanize-Chrome-0.68 ++ pathname: C/CO/CORION/WWW-Mechanize-Chrome-0.68.tar.gz ++ provides: ++ Chrome::DevToolsProtocol 0.68 ++ Chrome::DevToolsProtocol::Target 0.68 ++ Chrome::DevToolsProtocol::Transport 0.68 ++ Chrome::DevToolsProtocol::Transport::AnyEvent 0.68 ++ Chrome::DevToolsProtocol::Transport::Mojo 0.68 ++ Chrome::DevToolsProtocol::Transport::NetAsync 0.68 ++ Chrome::DevToolsProtocol::Transport::Pipe 0.68 ++ Chrome::DevToolsProtocol::Transport::Pipe::AnyEvent 0.68 ++ Chrome::DevToolsProtocol::Transport::Pipe::Mojo 0.68 ++ Chrome::DevToolsProtocol::Transport::Pipe::NetAsync 0.68 ++ HTTP::Cookies::ChromeDevTools 0.68 ++ WWW::Mechanize::Chrome 0.68 ++ WWW::Mechanize::Chrome::Cookbook 0.68 ++ WWW::Mechanize::Chrome::DSL 0.68 ++ WWW::Mechanize::Chrome::Examples 0.68 ++ WWW::Mechanize::Chrome::Node 0.68 ++ WWW::Mechanize::Chrome::Troubleshooting 0.68 ++ WWW::Mechanize::Chrome::URLBlacklist 0.68 ++ Win32::InheritHandles 0.68 ++ requirements: ++ Algorithm::Loops 0 ++ Carp 0 ++ Exporter 5 ++ ExtUtils::MakeMaker 5.52_01 ++ File::Basename 0 ++ File::Spec 0 ++ Filter::signatures 0.16 ++ Future 0.35 ++ Future::HTTP 0.06 ++ HTML::Selector::XPath 0 ++ HTTP::Cookies 0 ++ HTTP::Headers 0 ++ HTTP::Response 0 ++ IO::Async 0 ++ IO::Socket::INET 0 ++ IPC::Open3 0 ++ Imager 0 ++ Imager::File::PNG 0 ++ JSON 0 ++ Log::Log4perl 0 ++ MIME::Base64 0 ++ Moo 2 ++ Net::Async::WebSocket::Client 0.12 ++ Object::Import 0 ++ POSIX 0 ++ PerlX::Maybe 0 ++ Scalar::Util 0 ++ Storable 0 ++ Try::Tiny 0 ++ URI 0 ++ URI::file 0 ++ URI::ws 0 ++ WWW::Mechanize::Link 0 ++ perl 5.010 ++ WWW-RobotRules-6.02 ++ pathname: G/GA/GAAS/WWW-RobotRules-6.02.tar.gz ++ provides: ++ WWW::RobotRules 6.02 ++ WWW::RobotRules::AnyDBM_File 6.00 ++ WWW::RobotRules::InCore 6.02 ++ requirements: ++ AnyDBM_File 0 ++ ExtUtils::MakeMaker 0 ++ Fcntl 0 ++ URI 1.10 ++ perl 5.008001 + Win32-ShellQuote-0.003001 + pathname: H/HA/HAARG/Win32-ShellQuote-0.003001.tar.gz + provides: +@@ cpanfile.snapshot: DISTRIBUTIONS + requirements: + ExtUtils::MakeMaker 0 + perl 5.008001 +- YAML-LibYAML-0.83 +- pathname: T/TI/TINITA/YAML-LibYAML-0.83.tar.gz ++ YAML-LibYAML-0.86 ++ pathname: I/IN/INGY/YAML-LibYAML-0.86.tar.gz + provides: +- YAML::LibYAML 0.83 +- YAML::XS 0.83 ++ YAML::LibYAML 0.86 ++ YAML::XS 0.86 + YAML::XS::LibYAML undef + requirements: + ExtUtils::MakeMaker 0 +@@ cpanfile.snapshot: DISTRIBUTIONS + XSLoader 0 + lib 0 + perl 5.008001 ++ libwww-perl-6.67 ++ pathname: O/OA/OALDERS/libwww-perl-6.67.tar.gz ++ provides: ++ LWP 6.67 ++ LWP::Authen::Basic 6.67 ++ LWP::Authen::Digest 6.67 ++ LWP::Authen::Ntlm 6.67 ++ LWP::ConnCache 6.67 ++ LWP::Debug 6.67 ++ LWP::Debug::TraceHTTP 6.67 ++ LWP::DebugFile 6.67 ++ LWP::MemberMixin 6.67 ++ LWP::Protocol 6.67 ++ LWP::Protocol::cpan 6.67 ++ LWP::Protocol::data 6.67 ++ LWP::Protocol::file 6.67 ++ LWP::Protocol::ftp 6.67 ++ LWP::Protocol::gopher 6.67 ++ LWP::Protocol::http 6.67 ++ LWP::Protocol::loopback 6.67 ++ LWP::Protocol::mailto 6.67 ++ LWP::Protocol::nntp 6.67 ++ LWP::Protocol::nogo 6.67 ++ LWP::RobotUA 6.67 ++ LWP::Simple 6.67 ++ LWP::UserAgent 6.67 ++ requirements: ++ CPAN::Meta::Requirements 2.120620 ++ Digest::MD5 0 ++ Encode 2.12 ++ Encode::Locale 0 ++ ExtUtils::MakeMaker 0 ++ File::Copy 0 ++ File::Listing 6 ++ File::Temp 0 ++ Getopt::Long 0 ++ HTML::Entities 0 ++ HTML::HeadParser 0 ++ HTTP::Cookies 6 ++ HTTP::Date 6 ++ HTTP::Negotiate 6 ++ HTTP::Request 6 ++ HTTP::Request::Common 6 ++ HTTP::Response 6 ++ HTTP::Status 6.18 ++ IO::Select 0 ++ IO::Socket 0 ++ LWP::MediaTypes 6 ++ MIME::Base64 2.1 ++ Module::Metadata 0 ++ Net::FTP 2.58 ++ Net::HTTP 6.18 ++ Scalar::Util 0 ++ Try::Tiny 0 ++ URI 1.10 ++ URI::Escape 0 ++ WWW::RobotRules 6 ++ parent 0.217 ++ perl 5.008001 ++ strict 0 ++ warnings 0 + local-lib-2.000029 + pathname: H/HA/HAARG/local-lib-2.000029.tar.gz + provides: -: ------- > 39: 95a704d Install missed module -: ------- > 40: 802df67 This project does not have Globals. We provide modules location via command line -: ------- > 41: 05cf81a Do not query live servers while testing Left-right comparison of this brances: > 05cf81a (HEAD -> refactoring) Do not query live servers while testing > 802df67 This project does not have Globals. We provide modules location via command line > 95a704d Install missed module > 3bc7958 Updated modules > 5016343 Update to Mojolicious v9.31 > 8c8dbc0 Removed Example.pm > deecd9c Simplified code > 53329f9 Removed A::SaveData module > daad594 Typo fix > 9fc16f6 Put simple functionality first > a023d27 Issue warning when we are trying to load content into button > 3928191 Hint type was changed: warning -> error > a19a3ae BUGFIX: Do not scroll when a link button is pressed > 5790dc8 Extended tests for button/input/link > f83a68e Improved example message > 5daa3ef Close modal when response was processed > fa75d0e Implemented deprecation message about 'data-close-modal' > 395ddf9 Do not close modal window when ESC is keypressed and there is not an active modal window > e9ae2a3 Improved documentation > ef069d7 Improved comment > 1586539 Options should be on trigger element and not on target > 3632554 Improved text for examples > 5183551 Improved documentation for lazy_load > aa25331 Improved examples for lazy loading > a3b1bb2 Improved displayResponse > 305ea24 Be more explecit about content > 1ed3596 Pass target element explicitly > 39470fb Moved code to its own function > b2c417e Renamed: form -> triggerEl = 2f235a5 Implement and reuse processResponse = 31dc239 Added more logging and messages to user = d169cf6 Remove useless parameter = 9b58983 FIXED: html not defined = 05f4206 Renamed: form -> containerEl = 3ac9601 Removed outdated example = 4263831 Renamed flag which controls how deal with new content: replace-form -> replace-me = 50573a9 Improved text on example page = 804922f Changed function name: give_name ->after_submit_handler_name = 307203e Removed ajaxFormModal: No reason to duplicate code = 62343cd Implemented tests for messages with different types > 015bc3e Renamed: replace -> update | = 46caa01 (modalnew) Implement and reuse processResponse | = fe80807 Added more logging and messages to user | = 90e76c0 Remove useless parameter | = 8405d9e FIXED: html not defined | = c7f6e55 Renamed: form -> containerEl | = 068723b Removed outdated example | = 0e8defa Renamed flag which controls how deal with new content: replace-form -> replace-me | = 9cdaeb3 Improved text on example page | = 1c0919e Changed function name: give_name ->after_submit_handler_name | = c681ba1 Removed ajaxFormModal: No reason to duplicate code | = d7792ad Implemented tests for messages with different types | < d1bbaf5 Renamed: replace -> update |/ o aa81394 Tests were regroped by meaning
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.