sapling/mercurial
Bryan O'Sullivan 849e7f15fd parsers: incrementally parse the revlog index in C
We only parse entries in a revlog index file when they are actually
needed, and cache them when first requested.

This makes a huge difference to performance on large revlogs when
accessing the tip revision or performing a handful of numeric lookups
(very common cases).  For instance, "hg --time tip --template {node}"
on a tree with 300,000 revs takes 0.15 before, 0.02 after.

Even for revlog-intensive operations (e.g. running "hg log" to
completion), the lazy approach is about 1% faster than the eager
parse_index2.
2012-04-05 13:00:35 -07:00
..
help protocol: Add the stream-preferred capability 2012-04-04 00:00:47 +02:00
hgweb hgweb: add block numbers to diff regions and related links 2012-03-23 01:31:31 +01:00
httpclient httpclient: update to 07d8c356f4d1 of py-nonblocking-http 2011-10-10 17:57:40 -05:00
pure mdiff: replace wscleanup() regexps with C loops 2011-11-18 14:23:03 +01:00
templates templates: move Graph.edge() implementation in mercurial.js 2012-02-17 16:49:43 +01:00
__init__.py
ancestor.py check-code: flag 0/1 used as constant Boolean expression 2011-06-01 12:38:46 +02:00
archival.py atomictempfile: make close() consistent with other file-like objects. 2011-08-25 20:21:04 -04:00
base85.c backout of e4cb9628354c 2011-01-27 11:15:08 +01:00
bdiff.c bdiff: fix malloc(0) issue in fixws() 2012-02-03 23:27:17 +00:00
bookmarks.py bookmarks: clone non-divergent bookmarks with @ in them 2012-03-21 16:39:38 -05:00
bundlerepo.py bundlerepo: bundle repos should be non-publishing (issue3266) 2012-02-29 14:41:11 +01:00
byterange.py Remove FSF mailing address from GPL headers 2012-01-06 16:27:13 +01:00
changegroup.py check-code: flag 0/1 used as constant Boolean expression 2011-06-01 12:38:46 +02:00
changelog.py changelog: micro-optimizations to changelog.read() 2012-03-18 18:19:16 -05:00
cmdutil.py revert: move bulk of revert command from commands to cmdutil 2012-03-28 11:42:17 +02:00
commands.py revert: move bulk of revert command from commands to cmdutil 2012-03-28 11:42:17 +02:00
commandserver.py cmdserver: invalidate the dirstate when running commands (issue3271) 2012-02-15 23:44:10 +02:00
config.py config: discard UTF-8 BOM if found 2012-04-03 11:35:04 -05:00
context.py context: add followfirst arg to filectx and workingfilectx 2012-02-26 17:10:57 +01:00
copies.py copies: use ctx.dirs() for directory rename detection 2012-02-26 16:45:59 -06:00
dagparser.py cleanup: use x in (a, b) instead of x == a or x == b 2010-09-23 00:02:31 -05:00
dagutil.py dagutil: fix off-by-one in inverserevlogdag buildup 2011-08-25 17:20:00 +02:00
demandimport.py demandimport: determine at load time if __import__ has level argument 2011-08-22 22:50:52 +02:00
diffhelpers.c backout of e4cb9628354c 2011-01-27 11:15:08 +01:00
dirstate.py dirstate: fix some problems for recursive case normalization (issue3342) 2012-03-31 15:55:03 +09:00
discovery.py discovery: fix regression when checking heads for pre 1.4 client (issue3218) 2012-01-24 19:49:30 +01:00
dispatch.py alias: abort on missing positional args (issue3331) 2012-03-27 16:13:59 -05:00
encoding.py encoding: tune fast-path of tolocal a bit 2012-03-22 16:54:46 -05:00
error.py wireproto: add out-of-band error class to allow remote repo to report errors 2011-08-02 15:21:10 -04:00
extensions.py extensions: print some debug info on import failure 2011-10-01 16:42:39 -04:00
fancyopts.py globally: use safehasattr(x, '__call__') instead of hasattr(x, '__call__') 2011-07-25 16:24:37 -05:00
filelog.py filelog: add file function to open other filelogs 2011-05-10 17:38:58 +02:00
filemerge.py merge with stable 2012-03-13 16:29:13 -05:00
fileset.py fileset: don't attempt to check data predicates against removed files 2012-01-20 22:19:40 -06:00
formatter.py formatter: add basic formatters 2012-02-20 16:42:47 -06:00
graphmod.py graphmod: add config cache 2012-02-17 13:53:41 -06:00
hbisect.py bisect: add i18n contexts 2011-10-18 09:38:14 -02:00
help.py help: strip doctest from dochelp 2012-03-09 22:54:17 +01:00
hg.py clone: always close source repository (issue2491) 2012-04-03 22:01:28 +02:00
hook.py hooks: prioritize run order of hooks 2012-01-15 13:50:12 -07:00
httpconnection.py Use explicit integer division 2012-01-08 18:15:54 +01:00
httprepo.py httprepo: make __del__ more stable in error situations 2011-10-13 04:27:49 +02:00
i18n.py i18n: use getattr instead of hasattr 2011-07-25 20:46:30 -05:00
ignore.py misc: adding missing file close() calls 2011-11-03 11:24:55 -05:00
keepalive.py Remove FSF mailing address from GPL headers 2012-01-06 16:27:13 +01:00
localrepo.py protocol: Add the stream-preferred capability 2012-04-04 00:00:47 +02:00
lock.py lock: change name of release chain 2011-11-30 16:53:44 -06:00
lsprof.py profile: add undocumented config options for profiler output 2012-03-15 15:59:26 -05:00
lsprofcalltree.py drop unused imports 2009-05-14 15:35:46 +02:00
mail.py mail: use quoted-printable for mime encoding to avoid too long lines (issue3075) 2011-11-23 02:44:11 +01:00
manifest.py util: don't mess with builtins to emulate buffer() 2011-12-15 15:27:11 -06:00
match.py match: consider filesets as "anypats" 2012-02-26 17:10:55 +01:00
mdiff.py mdiff: adjust hunk offsets with --ignore-blank-lines (issue3234) 2012-02-06 21:17:50 +01:00
merge.py merge: fix unknown file merge detection for case-folding systems 2012-03-26 16:41:54 -05:00
minirst.py minirst: simplify and standardize field list formatting 2012-01-11 18:08:25 +01:00
mpatch.c parsers: avoid pointer aliasing 2011-08-10 13:40:01 -05:00
node.py Update license to GPLv2+ 2010-01-19 22:20:08 -06:00
osutil.c merge with stable 2011-09-14 14:37:10 -05:00
parser.py parsers: fix localization markup of parser errors 2011-06-21 00:17:52 +02:00
parsers.c parsers: incrementally parse the revlog index in C 2012-04-05 13:00:35 -07:00
patch.py patch: remove useless variable assignment 2012-04-05 19:23:04 +02:00
phases.py phases: fix a non-standard debug message 2012-02-15 17:30:21 -05:00
posix.py posix: disable cygwin's symlink emulation 2012-03-08 15:59:47 -06:00
pushkey.py phases: add basic pushkey support 2011-12-15 11:24:26 +01:00
pvec.py pvec: introduce pvecs 2012-03-12 13:37:39 -05:00
py3kcompat.py py3kcompat: added fake ord implementation for py3k 2010-08-07 16:38:38 -03:00
repair.py merge with stable 2012-03-12 17:05:42 -05:00
repo.py Make sure bundlerepo doesn't leak temp files (issue2491) 2011-02-12 10:58:11 +01:00
revlog.py revlog: make addgroup returns a list of node contained in the added source 2012-01-13 01:29:03 +01:00
revset.py context: add followfirst arg to filectx and workingfilectx 2012-02-26 17:10:57 +01:00
scmutil.py merge with stable 2012-03-02 09:57:09 +01:00
setdiscovery.py phases: do not exchange secret changesets 2011-12-22 00:42:25 +01:00
similar.py fix coding style 2010-05-02 00:48:33 +02:00
simplemerge.py Remove FSF mailing address from GPL headers 2012-01-06 16:27:13 +01:00
sshrepo.py sshrepo: add more safe characters (issue2983) 2011-12-09 15:50:33 +01:00
sshserver.py addchangegroup: remove the lock argument on the addchangegroup methods 2011-11-28 01:32:13 +01:00
sslutil.py sslutil: more helpful fingerprint mismatch message 2012-01-26 11:23:15 -06:00
statichttprepo.py scmutil: update cached copy when filecached attribute is assigned (issue3263) 2012-02-15 20:02:35 +02:00
store.py phases: prevent rebase to rebase immutable changeset. 2011-12-27 00:11:22 +01:00
strutil.py Update license to GPLv2+ 2010-01-19 22:20:08 -06:00
subrepo.py merge with stable 2012-02-29 17:27:24 -06:00
tags.py atomictempfile: make close() consistent with other file-like objects. 2011-08-25 20:21:04 -04:00
templatefilters.py templates/filters: extracting the user portion of an email address 2012-03-28 16:06:20 +02:00
templatekw.py templatekw: fix phase keywords 2012-01-20 13:10:01 -02:00
templater.py globally: use safehasattr(x, '__iter__') instead of hasattr(x, '__iter__') 2011-07-25 15:30:19 -05:00
transaction.py transaction: use posixfile and unlink from util 2011-02-15 14:41:49 +01:00
treediscovery.py treediscovery: always return all remote heads 2011-06-20 14:11:01 +02:00
ui.py ui: add formatter method 2012-02-20 16:42:48 -06:00
url.py merge with stable 2011-09-10 17:56:42 -05:00
util.h backout of e4cb9628354c 2011-01-27 11:15:08 +01:00
util.py templates/filters: extracting the user portion of an email address 2012-03-28 16:06:20 +02:00
verify.py verify: fix mq misfire 2011-07-14 12:39:39 -05:00
win32.py win32: quietly ignore missing CreateHardLinkA for Wine 2011-09-13 17:01:07 -05:00
windows.py windows: use 'str.replace()' instead of combination of split() and join() 2012-02-05 22:58:31 +09:00
wireproto.py protocol: Add the stream-preferred capability 2012-04-04 00:00:47 +02:00