Mercurial 4.1 release
This is a draft and may not accurately reflect what lands in the 4.1 release.
1. Features
- A new extensible "compression engines" API has been implemented. Support for a new compression format can now be implemented in extensions.
- zstd - a new and exciting compression engine - is now distributed with Mercurial and built by default
- Bundles using zstd are faster to create and smaller than zlib bundles
A new statistical profiler has been added and made the default profiler for --profile. This profiler gives more accurate results than Python's built-in cProfile (the previous default) because the profiler overhead is much smaller. The output from --profile now displays the code hot path by default. This allows Mercurial developers to more accurately identify performance problems.
New followlines(file, from:to, startrev=.) revset predicate to track a part of changes.
2. Improvements
- Performance of reading individual revlog entries has been greatly improved. This will be noticeable when performing changelog scans on large repositories (such as when executing certain revsets).
- The low-level content diffing algorithm is now ~2x faster. Operations that write data to the repository (like commit) can be noticeably faster as a result.