rebase: extract final changesets cleanup logic in a dedicated function
At the end of the rebase, rebased changesets are currently stripped. This
behavior will be eventually dropped in favor of obsolescence marker creation.
The main rebase function is already big and branchy enough. This changeset move
the clean-up logic in a dedicated function before we make it more complex.
store: reuse direncoded path in _hybridencode
For a netbeans clone on Windows 7 x64:
Before:
$ hg perffncacheencode
! wall 3.516000 comb 3.525623 user 3.525623 sys 0.000000 (best of 3)
After:
$ hg perffncacheencode
! wall 3.443000 comb 3.447622 user 3.447622 sys 0.000000 (best of 3)
store: use fast C implementation of encodedir() if it's available
For a netbeans clone on Windows 7 x64:
Encoding all paths in the fncache:
Before:
$ hg perffncacheencode
! wall 3.639000 comb 3.634823 user 3.634823 sys 0.000000 (best of 3)
After:
$ hg perffncacheencode
! wall 3.470000 comb 3.463222 user 3.463222 sys 0.000000 (best of 3)
Writing fncache:
Before:
$ hg perffncachewrite
! wall 0.103000 comb 0.093601 user 0.093601 sys 0.000000 (best of 95)
After:
$ hg perffncachewrite
! wall 0.081000 comb 0.078001 user 0.062400 sys 0.015600 (best of 100)
pathencode: new C module with fast encodedir() function
Not yet used (will be enabled in a later patch).
This patch is a stripped down version of patches originally created by
Bryan O'Sullivan <bryano@fb.com>
store: add multiline doctest case for encodedir()
a followup to
64c6a0d4d4bd
store: optimize fncache._load a bit by dirdecoding the contents in one go
For a netbeans clone on Windows 7 x64:
Before:
$ hg perffncacheload
! wall 0.124000 comb 0.124801 user 0.124801 sys 0.000000 (best of 76)
After:
$ hg perffncacheload
! wall 0.096000 comb 0.093601 user 0.078001 sys 0.015600 (best of 97)