Oxidizing Mercurial: The good and the less good
summary
Mercurial adds Rust components and measures concrete wins and costs: the discovery algorithm rewrites run 3× faster, the node map plus persistence yields a 2,000× speedup, and status on huge repos drops to about 44 ms on a decent machine. Work requires careful refactoring first, deals with costly FFI, mixed encodings, duplicated backends, fewer Rust reviewers and harder packaging; some commands slow in exchange for big common-case gains, and a pure-Rust executable (rg) provides a fast fallback path.
AI-written summary · about
chapters (11)
- 0:00Start
- 0:23Mercurial refresher
- 0:54Picking what to rewrite
- 6:25Timeline
- 9:49Takeaways
- 12:29Constraints of rhg
- 15:46Mixed encoding
- 17:00Cursed encoding
- 18:28Yay, performance!
- 20:49Downsides
- 23:34Rust is right for a VCS
related talks
46mA journey to performance: using Rust in Mercurial
05mOxidize Lightning Talks – Massimiliano Mantione
22mFearless Refactoring
28mRust on Morello
33mRust at Sentry: 7 Years Later
29mPerformance: We're In This Together
36m2 Hours to 10 Minutes: Building Rust Monorepos at Scale with Bazel RBE
21mRust - Cargo Cult?
