revlog: add some direct testing of the slicing logic
This test check slicing backed by an actual revlog. It will test the C version
of slicing (if the test are run with the C extensions).
revlog: limit base to rev size ratio to 500 instead of 50
While a value of 50 provided large speedup in some case (400s → 7s) it also
creates a slow down for a whole class of revision we are seeing in a private
repository (0.1s → 3s). A value of 500 makes them disappear improving the
total runtime (the slower revision still improve significantly (400s → 21s)).
We need to run a wider array of tests on various repositories to see the
effect on speed and size of different values for this acceptable constant.
However, in the meantime, it seems safer to move back to a less impactful
value.
contrib: remove unused version of os
Caught by test-check-pyflakes.t
Differential Revision: https://phab.mercurial-scm.org/D5471
py3: convert `'{}'.format(foo)` to `'%s' % foo` in the bookflow extension
Byte strings don't have the former. Converting these to byte strings is waiting
on the mass rewrite.
repository: update interface signature of narrowmatch()
This should have been part of
4fd0fac48922 (localrepo: allow
narrowmatch() to accept matcher to intersect with, 2018-09-28) and
41fcdfe3bfeb (narrow: allow repo.narrowmatch(match) to include exact
matches from "match", 2018-10-01).
Differential Revision: https://phab.mercurial-scm.org/D5466
narrow: when narrowing, write new narrowspec before removing revlogs
If revlogs were removed and then the process crashed before the
narrowspec was written, the repo would be corrupt.
Differential Revision: https://phab.mercurial-scm.org/D5467