Performance of hg update was significantly worse since the introduction of
the Rust dirstatemap. This regression was noticed by Valentin Gatien-Baron
when working on a large repository, as it goes unnoticed for smaller
repositories like Mercurial itself.
This fix introduces the same getter/setter mechanism at hg-core level as
While this technique is, as previously discussed, quite suboptimal, it fixes an
important enough problem. Refactoring hg-core to use the typestate
pattern could be a good approach to improving code quality in a future patch.
This is a graft of stable of 83b2b829c94e