sapling/contrib
Gregory Szorc 27315bd014 revset: optimize baseset.__sub__ (issue4313)
f5a63a5506d2 regressed performance of baseset.__sub__ by introducing
a lazyset. This patch restores that lost performance by eagerly
evaluating baseset.__sub__ if the other set is a baseset.

revsetbenchmark.py results impacted by this change:

revset #6: roots(0::tip)
0) wall 2.923473 comb 2.920000 user 2.920000 sys 0.000000 (best of 4)
1) wall 0.077614 comb 0.080000 user 0.080000 sys 0.000000 (best of 100)

revset #23: roots((0:tip)::)
0) wall 2.875178 comb 2.880000 user 2.880000 sys 0.000000 (best of 4)
1) wall 0.154519 comb 0.150000 user 0.150000 sys 0.000000 (best of 61)

On the author's machine, this slowdown manifested during evaluation of
'roots(%ln::)' in phases.retractboundary after unbundling the Firefox
repository. Using `time hg unbundle firefox.hg` as a benchmark:

Before: 8:00
After:  4:28
Delta: -3:32

For reference, the subset and cs baseset instances impacted by this
change were of lengths 193634 and 193627, respectively.

Explicit test coverage of roots(%ln::), while similar to the existing
roots(0::tip) benchmark, has been added.
2014-07-24 12:12:12 -07:00
..
docker build: initial support for in-tree autobuilding recipes 2014-05-07 17:58:13 -05:00
hgfixes fix_bytes: loosen blacklist matching requirements 2014-05-10 14:54:39 -07:00
hgsh backout of e4cb9628354c 2011-01-27 11:15:08 +01:00
macosx Make Readme.html reference current OS X release 2010-03-06 21:29:02 -08:00
plan9 hgrc.d: separate namespace for mercurial scripts 9diff and 9mail 2013-08-15 21:35:56 -04:00
vagrant contrib/vagrant: use Vagrant for running tests on virtual machine 2014-07-05 16:32:28 +03:00
vim vim: use try catch in vim plugin to avoid conflicts 2014-05-03 19:11:51 +04:30
win32 doc: bump copyright year 2014-01-10 16:26:11 -06:00
wix wix: pull in new templates 2014-01-23 14:06:15 -06:00
bash_completion bash_completion: add -l|--list support for shelve 2014-06-06 00:21:46 -05:00
buildrpm buildrpm: include release version in .tar.gz name 2014-05-20 04:07:58 +02:00
casesmash.py cleanup: drop unused variables and an unused import 2013-07-01 20:48:56 +02:00
check-code.py tests: cat error messages are different on Solaris 2014-07-21 11:27:24 -07:00
convert-repo convertrepo: make it work with refactored convert extension 2008-03-23 21:41:03 +01:00
debugcmdserver.py cleanup: "raise SomeException()" -> "raise SomeException" 2012-05-12 16:00:58 +02:00
debugshell.py debugshell: declare command using decorator 2014-05-04 21:19:31 -07:00
dockerrpm docker: check for docker.io first 2014-05-29 16:01:39 -07:00
dumprevlog rename util.set_binary to setbinary 2011-05-06 15:25:35 +02:00
editmerge contrib: don't hardcode path to bash interpreter 2014-03-26 11:59:13 +01:00
hg-ssh hg-ssh: read-only flag 2012-05-22 15:17:37 -07:00
hgk hgk: add .diff extension when exporting commits 2014-03-25 22:47:59 +01:00
hgperf contrib: add "hgperf" command to measure performance of commands easily 2014-02-15 19:51:20 +09:00
hgweb.fcgi mq: add a warning about uncommitted changes for qfinish 2011-11-10 15:40:34 -06:00
hgweb.wsgi mq: add a warning about uncommitted changes for qfinish 2011-11-10 15:40:34 -06:00
import-checker.py import-checker: handle standard modules with arch in the filename 2014-02-07 02:59:46 +01:00
lock-checker.py util: introduce util.debugstacktrace for showing a stack trace without crashing 2014-01-12 23:28:21 +01:00
logo-droplets.svg logo: clean up source file with scour 2010-04-05 14:33:41 -05:00
Makefile.python contrib/Makefile.python: build local Python from source 2013-02-10 00:11:45 +01:00
memory.py many, many trivial check-code fixups 2010-01-25 00:05:27 -06:00
mercurial.el en-us: penalize 2012-08-17 13:58:19 -07:00
mercurial.spec buildrpm: include release version in .tar.gz name 2014-05-20 04:07:58 +02:00
mergetools.hgrc mergetools: add --nofork option to gvimdiff.diffargs for extdiff 2014-07-12 20:07:24 +09:00
mq.el Remove FSF mailing address from GPL headers 2012-01-06 16:27:13 +01:00
perf.py perf: unroll the result in perfrevset 2014-03-26 17:25:11 -07:00
pylintrc codingstyle: remove trailing spaces in various text files 2013-04-17 03:40:18 +02:00
python-hook-examples.py misc: replace .parents()[0] with p1() 2011-04-04 16:21:59 -05:00
revsetbenchmarks.py revsetbenchmark: support for running on other repo 2014-04-29 14:12:32 -07:00
revsetbenchmarks.txt revset: optimize baseset.__sub__ (issue4313) 2014-07-24 12:12:12 -07:00
sample.hgrc contrib: stop mentioning obsolete graphlog extension in sample.hgrc 2013-11-22 19:11:48 +01:00
simplemerge cleanup: drop unused variables and an unused import 2013-07-01 20:48:56 +02:00
synthrepo.py memfilectx: call super.__init__ instead of duplicating code 2013-08-15 16:49:27 -05:00
tcsh_completion contrib: update tcsh_completion for Mercurial 1.8 2011-03-01 07:28:20 +01:00
tcsh_completion_build.sh contrib: update tcsh_completion for Mercurial 1.8 2011-03-01 07:28:20 +01:00
undumprevlog tests: run check-code on Python files without .py extension 2013-04-17 03:39:36 +02:00
xml.rnc Added RelaxNG schema for hg log XML output format 2009-12-30 02:44:37 +01:00
zsh_completion zsh_completion: complete all files for commit/backout --logfile 2013-04-17 21:06:48 +04:00