Page MenuHomePhabricator

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
Branch
default
Lint
No Linters Available
Unit
No Unit Test Coverage

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