sapling/mercurial
Laurent Charignon be38dd4abe revset: optimize not public revset
This patvh speeds up the computation of the not public() changeset
and incidentally speed up the computation of divergents() changeset on our big
repo by 100x from 50% to 0.5% of the time spent in smartlog with evolve.

In this patch we optimize not public() to _notpublic() (new revset) and use
the work on phaseset (from the previous commit) to be able to compute
_notpublic() quickly.

We use a non-lazy approach making the assumption the number of notpublic
change will not be in the order of magnitude of the repo size. Adopting a
lazy approach gives a speedup of 5x (vs 100x) only due to the overhead of the
code for lazy generation.
2015-04-24 14:30:30 -07:00
..
default.d mergetools: drop incorrect quoting of diffargs variables 2015-01-28 02:28:38 +01:00
help templatekw: replace currentbookmark with activebookmark keyword 2015-04-15 08:19:36 -07:00
hgweb cleanup: use __builtins__.any instead of util.any 2015-05-16 14:30:07 -04:00
httpclient style: kill ersatz if-else ternary operators 2015-03-13 17:00:06 -04:00
pure parsers: remove unused dependency on util 2015-04-06 13:59:36 -07:00
templates paper: show branch/tags/bookmarks when blaming (issue3559) 2015-05-15 20:04:24 +08:00
__init__.py
ancestor.py util: drop alias for collections.deque 2015-05-16 11:28:04 -07:00
archival.py cleanup: use __builtins__.any instead of util.any 2015-05-16 14:30:07 -04:00
base85.c base85: cast Py_ssize_t values to int (issue3481) 2012-06-04 16:59:34 +02:00
bdiff.c bdiff: avoid a memory error on malloc failure 2013-10-30 16:03:42 -05:00
bookmarks.py bookmarks: rename current to active in variables and comments 2015-04-14 12:53:48 -07:00
branchmap.py branchcache: stay silent if failing to read cache files 2015-01-14 01:15:26 +01:00
bundle2.py bundle2: use BaseException in bundle2 2015-05-18 13:23:14 -05:00
bundlerepo.py bundlerepo: remove unused 'repo' parameter 2015-05-03 14:18:32 -07:00
byterange.py style: kill ersatz if-else ternary operators 2015-03-13 17:00:06 -04:00
changegroup.py changegroup: drop _changelog and _manifest properties 2015-04-30 16:45:03 -07:00
changelog.py changelog: fix readpending if no pending data exist (issue4609) 2015-04-20 17:16:22 +02:00
cmdutil.py getlogrevs: rewrite a loop to get read of try/except 2015-05-18 12:18:00 -05:00
commands.py cleanup: use __builtins__.any instead of util.any 2015-05-16 14:30:07 -04:00
commandserver.py cmdserver: protect pipe server streams against corruption caused by direct io 2014-11-15 13:50:43 +09:00
config.py config: give it an includepaths option for looking for config files 2015-05-15 09:04:32 -04:00
context.py match: resolve filesets in subrepos for commands given the '-S' argument 2015-05-16 00:36:35 -04:00
copies.py copies: add matcher parameter to copy logic 2015-04-16 11:29:30 -07:00
crecord.py crecord: fix mixed imports warning 2015-04-09 23:47:07 -04:00
dagparser.py dagparser: use 'next' instead of try/except for default value 2015-05-18 12:22:44 -05:00
dagutil.py style: kill ersatz if-else ternary operators 2015-03-13 17:00:06 -04:00
demandimport.py demandimport: blacklist distutils.msvc9compiler (issue4475) 2014-12-22 17:27:31 -05:00
diffhelpers.c diffhelpers: fix botched return statement from e48d70075d8a 2015-01-28 13:34:20 -05:00
dirs.c dirs.c: pass C string, not Python string, to _finddir() 2015-05-08 14:13:12 -07:00
dirstate.py ignore: remove .hgignore from ignore list if nonexistent 2015-05-16 15:24:43 -07:00
discovery.py discovery: don't compute allfuturecommon when it won't be used 2015-04-13 09:54:36 -04:00
dispatch.py dispatch: add support for python-flamegraph[0] profiling 2015-04-16 17:12:33 -04:00
dummycert.pem ssl: on OS X, use a dummy cert to trick Python/OpenSSL to use system CA certs 2014-09-26 02:19:48 +02:00
encoding.py util.h: define an enum for normcase specs 2015-04-02 19:17:32 -07:00
error.py hook: raise a more specialized HookAbort exception when a hook fails 2014-11-29 19:13:35 -08:00
exchange.py exchange: catch down to BaseException when handling bundle2 2015-05-18 15:33:21 -05:00
exewrapper.c exewrapper: adapt for legacy HackableMercurial 2012-08-07 11:04:41 +02:00
extensions.py extensions: clear aftercallbacks after execution (issue4646) 2015-05-06 09:52:10 -07:00
fancyopts.py fancyopts: restore use of callable() since it was readded in Python 3.2 2014-06-23 09:24:16 -04:00
filelog.py revlog: addgroup checks if incoming deltas add censored revs, sets flag bit 2015-01-14 15:16:08 -05:00
filemerge.py templater: remove noop calls of parsestring(s, quoted=False) (API) 2015-05-04 10:01:03 +09:00
fileset.py fileset: add a fileset for portable filenames 2015-03-19 21:26:18 -07:00
formatter.py formatter: convert None to json null 2014-09-17 22:34:34 +09:00
graphmod.py dagwalker: drop a useless intermediate variable 2014-10-08 02:43:51 -07:00
hbisect.py util: drop alias for collections.deque 2015-05-16 11:28:04 -07:00
help.py help: also hide options marked EXPERIMENTAL 2015-04-27 15:12:41 -07:00
hg.py bookmarks: rename setcurrent to activate (API) 2015-04-13 22:27:01 -07:00
hook.py hook: drop dedicated catch for 'KeyboardInterrupt' 2015-05-18 15:40:23 -05:00
httpconnection.py httpconnection: properly inject ssl_wrap_socket into httpclient (issue4038) 2013-09-20 09:16:07 -04:00
httppeer.py httppeer: use try/except/finally 2015-05-15 09:57:02 -05:00
i18n.py i18n: cache the result of every gettext call 2014-10-17 13:52:10 -04:00
ignore.py ignore: move readpatternfile to match.py 2015-05-16 15:46:54 -07:00
keepalive.py util: move md5 back next to sha1 and allow to call it without an argument 2014-09-24 16:00:47 +09:00
localrepo.py treemanifest: cache directory logs and manifests 2015-04-10 23:12:33 -07:00
lock.py lock: while releasing, unlink lockfile even if the release function throws 2014-10-16 19:15:51 -07:00
lsprof.py profiling: replace '+' markup of nested lines with indentation 2013-02-08 22:54:48 +01:00
lsprofcalltree.py drop unused imports 2009-05-14 15:35:46 +02:00
mail.py mail: actually use the verifycert config value 2014-11-05 18:31:39 +00:00
manifest.c lazymanifest: drop SP before some labels 2015-04-12 07:14:53 -07:00
manifest.py match: remove unnecessary optimization where visitdir() returns 'all' 2015-05-06 15:59:35 -07:00
match.py match: rename _fmap to _fileroots for clarity 2015-05-08 12:30:51 -07:00
mdiff.py mdiff: add helper for making deltas which replace the full text of a revision 2015-01-21 16:35:09 -05:00
merge.py cleanup: use __builtins__.all instead of util.all 2015-05-16 14:34:19 -04:00
minirst.py help: show all nested subsections of a section with hg help foo.section 2014-10-06 07:35:53 -04:00
mpatch.c mpatch: rewrite pointer overflow checks 2013-12-11 18:33:42 -06:00
namespaces.py revset: mask specific names for named() predicate 2015-02-05 14:45:49 +09:00
node.py Update license to GPLv2+ 2010-01-19 22:20:08 -06:00
obsolete.py cleanup: use __builtins__.any instead of util.any 2015-05-16 14:30:07 -04:00
osutil.c osutil: mark end of string with null char, not 0 2015-03-25 16:21:58 -07:00
parser.py parsers: use 'next' instead of try/except 2015-05-18 12:27:15 -05:00
parsers.c phases: add set per phase in C phase computation 2015-04-01 11:17:17 -07:00
patch.py patch: remove duplicated import of cStringIO 2015-05-17 17:27:10 -07:00
pathencode.c pathencode: eliminate signed integer warnings 2014-02-19 13:11:24 -08:00
pathutil.py canonpath: fix infinite recursion 2015-05-12 19:40:45 -05:00
peer.py peer: delete double definition of method peer 2012-07-28 22:36:22 +02:00
phases.py phases: add set per phase in C phase computation 2015-04-01 11:17:17 -07:00
posix.py util: add removedirs as platform depending function 2015-04-11 00:47:09 +09:00
pushkey.py obsolete: add exchange option 2014-10-14 13:26:01 -07:00
pvec.py pvec: replace 'ctx._repo' with 'ctx.repo()' 2015-03-12 23:18:20 -04:00
py3kcompat.py py3kcompat: drop unused export 2014-05-13 15:22:36 -05:00
repair.py repair: avoid string concatenation by + operator 2015-04-25 23:44:53 +09:00
repoview.py cleanup: use __builtins__.any instead of util.any 2015-05-16 14:30:07 -04:00
revlog.py util: drop alias for collections.deque 2015-05-16 11:28:04 -07:00
revset.py revset: optimize not public revset 2015-04-24 14:30:30 -07:00
scmposix.py config: don't read the same config file twice 2014-09-04 21:36:35 +02:00
scmutil.py match: resolve filesets in subrepos for commands given the '-S' argument 2015-05-16 00:36:35 -04:00
scmwindows.py config: don't read the same config file twice 2014-09-04 21:36:35 +02:00
setdiscovery.py cleanup: use __builtins__.all instead of util.all 2015-05-16 14:34:19 -04:00
similar.py cleanup: eradicate long lines 2012-05-12 15:54:54 +02:00
simplemerge.py simplemerge: remove dead code 2014-08-07 12:51:45 -04:00
sshpeer.py merge with stable 2014-12-29 16:39:20 -06:00
sshserver.py changegroup: rename bundle-related functions and classes 2014-09-02 12:11:36 +02:00
sslutil.py ssl: resolve symlink before checking for Apple python executable (issue4588) 2015-04-04 14:56:18 +09:00
statichttprepo.py localrepo: remove all external users of localrepo.opener 2015-01-15 23:17:12 +01:00
store.py store: add comment in _hashencode with reason for skipping the first 5 chars 2015-05-13 20:36:56 +02:00
strutil.py Update license to GPLv2+ 2010-01-19 22:20:08 -06:00
subrepo.py subrepo: further replacement of try/except with 'next' 2015-05-18 12:31:41 -05:00
tagmerge.py filemerge: add internal:tagmerge merge tool 2014-06-26 01:20:25 +02:00
tags.py tags: use try/except/finally 2015-05-15 09:58:02 -05:00
templatefilters.py templatefilters: don't stringify None into "None" 2015-05-10 13:33:51 -04:00
templatekw.py templatekw: introduce activebookmark keyword 2015-04-15 08:12:04 -07:00
templater.py templater: look for mapfiles in template paths 2015-05-15 09:07:27 -04:00
transaction.py recover: catch any exception, not just Exception 2015-05-18 15:38:24 -05:00
treediscovery.py util: drop alias for collections.deque 2015-05-16 11:28:04 -07:00
ui.py cleanup: use __builtins__.any instead of util.any 2015-05-16 14:30:07 -04:00
unionrepo.py unionrepo: use pathutil.normasprefix to ensure os.sep at the end of cwd 2015-04-22 23:38:55 +09:00
url.py https: support tls sni (server name indication) for https urls (issue3090) 2015-01-12 18:01:20 -07:00
util.h util.h: kill no longer needed definitions for Python < 2.6 2015-05-14 09:04:48 +02:00
util.py util: drop any() and all() polyfills 2015-05-16 14:37:24 -04:00
verify.py verify: add a note about a paleo-bug 2015-03-27 15:13:21 -05:00
win32.py win32: 'raise ctypes.WinError' -> 'raise ctypes.WinError()' 2015-03-22 19:08:13 -04:00
windows.py windows: add comment in normcase() 2015-05-14 11:37:36 +02:00
wireproto.py wireproto: turn an 'except' into a 'finally' as suggest by the comment 2015-05-18 13:25:07 -05:00
worker.py cleanup: avoid _ for local unused tmp variables - that is reserved for i18n 2014-08-15 16:20:47 +02:00