mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
a987ecb9b2
Summary: Switch `ui.load` and `ui.readconfig` to use the Rust config parser. `ui` now no longer depends on `config.config` or `rcutil`. Pest's error messages are fancier, thus most test changes. For the fbsource repo, debugshell shows the new code is 10+x faster: On laptop: Before: In [1]: %timeit m.ui.ui.load() 10 loops, best of 3: 27.8 ms per loop After: In [1]: %timeit m.ui.ui.load() 100 loops, best of 3: 1.85 ms per loop On devserver: Before: In [1]: %timeit m.ui.ui.load() 100 loops, best of 3: 16.8 ms per loop After: In [1]: %timeit m.ui.ui.load() 1000 loops, best of 3: 1.28 ms per loop Since `ui._rcfg` is no longer copy-on-write, there is concern about `ui.copy()` performance. It is faster too (on devserver): Before: In [1]: %timeit ui.copy() 1000 loops, best of 3: 198 µs per loop After: In [1]: %timeit ui.copy() 10000 loops, best of 3: 157 µs per loop The old `ui.py` was copied to `legacyui.py` and can replace the new `ui.py` if a config file exists on the system. This provides a way to switch back to the old config parser in case of emergency. Reviewed By: mitrandir77 Differential Revision: D8887375 fbshipit-source-id: 2951ca622c77bf41187ad5c5cab3445cda0dc519
25 lines
830 B
Plaintext
25 lines
830 B
Plaintext
# Disable the $CAP wire protocol capability.
|
|
|
|
if test -z "$CAP"
|
|
then
|
|
echo "CAP environment variable not set."
|
|
fi
|
|
|
|
cat > notcapable-"${CAP}".py << EOF
|
|
from mercurial import extensions, localrepo, repository
|
|
def extsetup():
|
|
extensions.wrapfunction(repository.peer, 'capable', wrapcapable)
|
|
extensions.wrapfunction(localrepo.localrepository, 'peer', wrappeer)
|
|
def wrapcapable(orig, self, name, *args, **kwargs):
|
|
if name in '$CAP'.replace(',', ' ').split(' '):
|
|
return False
|
|
return orig(self, name, *args, **kwargs)
|
|
def wrappeer(orig, self):
|
|
# Since we're disabling some newer features, we need to make sure local
|
|
# repos add in the legacy features again.
|
|
return localrepo.locallegacypeer(self)
|
|
EOF
|
|
|
|
echo '[extensions]' >> $HGRCPATH
|
|
echo "notcapable-$CAP = `pwd`/notcapable-$CAP.py" >> $HGRCPATH
|