cmdutil: changed walkchangerevs to use spanset instead of baseset
Using a spanset takes almost no memory at all. A baseset builds the entire
list in memory and is much slower for methods like __contains__.
revset: added sort methods to generatorsets
Method needed to propagate sort calls amongst lazy structures.
The generated list (stored in the object) is sorted.
If the generated list did not contain all elements from the generator, we
take care of that before sorting the list.
fix_bytesmod: use the "from mercurial" form of the import to avoid breaking httpclient
Without this patch, 2to3's rewrites to httpclient cause it to fail to
import. With this patch, it's probably hopelessly broken, but at least
won't block forward progress on non-http2 functionality on Python 3.
commit: create new amend changeset as secret correctly for "--secret" option
Before this patch, "hg commit --amend --secret" doesn't create new
amend changeset as secret, even though the internal function
"commitfunc()" passed to "cmdutil.amend()" make "phases.new-commit"
configuration as "secret" temporarily.
"cmdutil.amend()" uses specified "commitfunc" only for temporary amend
commit, and creates the final amend commit changeset by
"localrepository.commitctx()" directly with memctx.
This patch creates new amend changeset as secret correctly for
"--secret" option, by changing "phases.new-commit" configuration
temporarily before "localrepository.commitctx()".
hg log: solves bug regarding hg log -r 0:null (
issue4039)
'hg log -r 0:null' was showing only one changeset(the '-1' one) instead of the first two changesets.
killdaemons: drop superfluous L suffix from constant
As far as I'm aware PEP 237[0] means this suffix is superfluous even
on Python 2.4, and we can just drop it, which makes this code happy on
Python 3.
0: http://legacy.python.org/dev/peps/pep-0237/
setup.py: fix 2.4 breakage in
77ab0abb
setup: handle more invalid python3 syntax
This should keep the file portable to both python2 and python3.
revset: changed __add__ methods on lazy sets to return addsets (
issue4191)
Performance Benchmarking:
$ hg --time log --graph --style compact --limit 6 -r 'sort((::. or bookmark()
or heads(public())), "-rev")'
time: real 1.540 secs (user 1.510+0.000 sys 0.020+0.000)
$ ./hg --time log --graph --style compact --limit 6 -r 'sort((::. or
bookmark() or heads(public())), "-rev")'
time: real 1.240 secs (user 1.190+0.000 sys 0.040+0.010)