Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 22 Sep 2022 17:16:54 -0400] rev 49518
rhg: centralize PlainInfo
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 20 Sep 2022 18:16:50 -0400] rev 49517
rhg: central treatment of PLAIN and PLAINEXCEPT
Matt Harbison <matt_harbison@yahoo.com> [Tue, 04 Oct 2022 12:34:50 -0400] rev 49516
revset: handle wdir() in `sort(..., -topo)`
The last apparent usage of `repo.changelog.parentrevs` in revsets is in
`children()`, but since the sets being operated on never include wdir(), it's
never called with `wdirrev` and the wdir() arg on the command line is
effectively ignored instead of aborting there. I'm not sure how to fix that.
Before (on a clone of hg):
$ python3.8 hg perf::revset --config extensions.perf=contrib/perf.py 'sort(all(), -topo)'
! wall 0.123663 comb 0.130000 user 0.130000 sys 0.000000 (best of 76)
After:
$ python3.8 hg perf::revset --config extensions.perf=contrib/perf.py 'sort(all(), -topo)'
! wall 0.123838 comb 0.130000 user 0.130000 sys 0.000000 (best of 75)
Matt Harbison <matt_harbison@yahoo.com> [Mon, 03 Oct 2022 17:24:52 -0400] rev 49515
revset: handle wdir() in `roots()`
This is already handled in `heads()`, and both are needed to determine if a set
is contiguous.
I'm guessing the `0 <= p` check was to try to filter out the null revision, but
it looks like that comes through in the corner case of a new repo with no
commits. But that was already the case, as shown by the tests.
Before (on a clone of hg):
$ python3.8 hg perf::revset --config extensions.perf=contrib/perf.py 'roots(all())'
! wall 0.059301 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
After:
$ python3.8 hg perf::revset --config extensions.perf=contrib/perf.py 'roots(all())'
! wall 0.059387 comb 0.060000 user 0.060000 sys 0.000000 (best of 100)