sapling/eden/fs
Michael Bolin 5a2246acbf Address a major outstanding TODO in Dirstate::hgGetDirstateTuple.
Summary:
Previously, `Dirstate::hgGetDirstateTuple()` was reporting a status of
`DirstateNonnormalFileStatus::NotTracked` even when the true status was
`Normal`.

Falsely reporting the status has serious consequences when running `hg log` on
an existing, tracked file. Specifically, it causes this `f not in wctx`
condition to be `True` here:

https://phab.mercurial-scm.org/diffusion/HG/browse/default/mercurial/cmdutil.py;da8bdeb1be28b976909a963c89e974264686e2bb$2316

which in turn causes the slow path to be selected:

https://phab.mercurial-scm.org/diffusion/HG/browse/default/mercurial/cmdutil.py;da8bdeb1be28b976909a963c89e974264686e2bb$2320

For large repositories like ours, this can be very, very slow.

There are still some TODOs in the new implementation, but this seems much more
faithful to the true implementation than what we had before.

Reviewed By: quark-zju

Differential Revision: D5655741

fbshipit-source-id: 07b953e23e4d74c480ac2d94dfc6a8df9df4fcbb
2017-08-18 21:49:59 -07:00
..
config Auto-dep the auto-dep'd TARGETS 2017-07-02 15:50:51 -07:00
fuse add a tag parameter to ThreadLocal<EdenStats> 2017-08-18 11:50:56 -07:00
inodes Address a major outstanding TODO in Dirstate::hgGetDirstateTuple. 2017-08-18 21:49:59 -07:00
journal fix journal merging of remove followed by create events 2017-08-17 12:33:51 -07:00
model add == and != comparisons for Tree objects 2017-07-05 11:21:30 -07:00
rocksdb Merge StringBase.cpp into String.cpp 2017-06-29 20:20:11 -07:00
service Add logging for EdenServiceHandler::hgGetDirstateTuple 2017-08-18 21:49:59 -07:00
store re-enable treemanifest import by default 2017-08-17 16:13:00 -07:00
testharness add a tag parameter to ThreadLocal<EdenStats> 2017-08-18 11:50:56 -07:00
utils Modification of unloadChildrenNow 2017-08-18 14:20:43 -07:00