This is an archive of the discontinued Mercurial Phabricator instance.

copies: make calculating lazy for dir move detection's "addedfiles"
ClosedPublic

Authored by spectral on Dec 11 2020, 5:04 PM.

Details

Summary

The information calculated here was only needed if (a) --debug was specified, or
(b) a directory move was plausibly detected. With tree manifests (especially in
my pathological repo and with our custom setup), pre-calculating the u1 and
u2 can be quite slow, and it's not even necessary in many cases. Let's delay
calculating it until we know it's actually necessary. This should have no
observable differences in output.

Performance

I ran a rebase command in my pathological repo, rebasing two nodes across
several public phase commits, but where no directory copies exist in any of the
paths I'm tracking.

Before
Time (mean ± σ):      3.711 s ±  0.061 s    [User: 0.3 ms, System: 1.5 ms]
Range (min … max):    3.640 s …  3.827 s    10 runs
After
Time (mean ± σ):     868.3 ms ±  10.1 ms    [User: 0.5 ms, System: 1.2 ms]
Range (min … max):   856.6 ms … 883.6 ms    10 runs

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

spectral created this revision.Dec 11 2020, 5:04 PM
pulkit accepted this revision.Dec 12 2020, 2:09 AM
This revision is now accepted and ready to land.Dec 12 2020, 2:09 AM