phases: use revision number in `_pushdiscoveryphase`
We now reach our target checkpoint in terms of rev-num conversion. The
`_pushdiscoveryphase` function is now performing graph computation based on
revision number only. Avoiding repeated conversion from node-id to rev-num.
See previous changeset updated `new_heads` for rationnal.
Again, time saved in the 100 milliseconds order of magnitude for the mozilla-try
benchmark I have been using.
However, wow that the logic is done using revision number, we can look into having
better logic in the next changesets, which will provide a much bigger speedup.
#testcases dirstate-v1 dirstate-v2
#if dirstate-v2
$ cat >> $HGRCPATH << EOF
> [format]
> use-dirstate-v2=1
> [storage]
> dirstate-v2.slow-path=allow
> EOF
#endif
The proliferation of status implementations can be confusing:
- The pure python implementation:
(no-rhg pure !)
- The C implementation:
(no-rhg no-rust no-pure !)
- The two rust implementations:
(rhg !)
(no-rhg rust !)
$ hg init repo1
$ cd repo1
$ mkdir d1
$ touch d1/x
$ hg commit -Am.
adding d1/x
$ touch d1/y
$ chmod -r d1
$ hg status
d1: $EACCES$
! d1/x (rhg !)
! d1/x (no-rhg rust !)
$ hg status
d1: $EACCES$
! d1/x (rust !)
! d1/x (no-rust rhg !)
$ chmod +r d1
$ hg status
? d1/y
$ touch d1/z
$ hg status
? d1/y
? d1/z