sapling/mercurial
Gregory Szorc 4a3b8df214 util: compression APIs to support revlog decompression
Previously, compression engines had APIs for performing revlog
compression but no mechanism to perform revlog decompression. This
patch changes that.

Revlog decompression is slightly more complicated than compression
because in the compression case there is (currently) only a single
engine that can be used at a time. However for decompression, a
revlog could contain chunks from multiple compression engines. This
means decompression needs to map to multiple engines and
decompressors. This functionality is outside the scope of this patch.
But it drives the decision for engines to declare a byte header
sequence that identifies revlog data as belonging to an engine and
an API for obtaining an engine from a revlog header.
2017-01-02 13:27:20 -08:00
..
cffi setup: move cffi stuff to mercurial/cffi 2016-11-09 22:08:30 +00:00
default.d mergetools.rc: find OSX FileMerge in the new location inside Xcode 4.3 2015-10-16 11:37:34 +02:00
help help: eliminate duplicate text for revset string patterns 2017-01-07 23:35:35 -05:00
hgweb hgweb: support Content Security Policy 2017-01-10 23:37:08 -08:00
httpclient httpclient: update to 54868ef054d2 of httpplus 2016-06-27 11:53:50 -04:00
pure lazymanifest: write a more efficient, pypy friendly version of lazymanifest 2016-09-12 13:37:14 +02:00
templates hgweb: support Content Security Policy 2017-01-10 23:37:08 -08:00
__init__.py py3: refactor token parsing to handle call args properly 2016-10-14 17:55:02 +01:00
ancestor.py py3: convert to next() function 2016-05-16 21:30:53 +00:00
archival.py py3: remove use of *L syntax 2016-09-01 02:29:46 +05:30
base85.c base85: fix comparison of an int and a long 2015-08-21 14:29:42 -04:00
bdiff_module.c bdiff: include util.h 2016-10-13 13:27:14 +02:00
bdiff.c bdiff: split bdiff into cpy-aware and cpy-agnostic part 2016-07-13 10:46:26 +02:00
bdiff.h bdiff: split bdiff into cpy-aware and cpy-agnostic part 2016-07-13 10:46:26 +02:00
bitmanipulation.h internals: move the bitmanipulation routines into its own file 2016-06-06 13:08:13 +02:00
bookmarks.py bookmarks: abort 'push -B .' when no active bookmark 2016-06-13 23:50:26 +02:00
branchmap.py rbc: fix superfluous rebuilding from scratch - don't abuse self._rbcnamescount 2016-07-18 22:25:09 +02:00
bundle2.py bundle2: allow compression options to be passed to compressor 2017-01-10 11:19:37 -08:00
bundlerepo.py revlog: flag processor 2017-01-10 16:15:21 +00:00
byterange.py pycompat: switch to util.urlreq/util.urlerr for py3 compat 2016-04-06 23:22:12 +00:00
changegroup.py revlog: add 'raw' argument to revision and _addrevision 2017-01-05 17:16:07 +00:00
changelog.py revlog: make 'storedeltachains' a "public" attribute 2016-10-14 02:25:08 +02:00
chgserver.py chgserver: add the setprocname interface 2017-01-11 07:36:48 +08:00
cmdutil.py rebase: provide detailed hint to abort message if working dir is not clean 2017-01-10 09:32:27 +01:00
color.py color: load 'colortable' from extension using an 'extraloader' 2016-11-18 18:18:15 +01:00
commands.py bisect: refer directly to bisect() revset predicate in help 2017-01-12 12:05:23 -08:00
commandserver.py commandserver: update comment about setpgid 2016-07-18 15:59:08 +01:00
compat.h compat: define ssize_t as int on 32bit Windows, silences C4142 warning 2016-07-15 23:54:56 +09:00
config.py config: add hasconfig method and supporting plumbing 2016-01-07 19:45:03 -08:00
context.py revlog: add 'raw' argument to revision and _addrevision 2017-01-05 17:16:07 +00:00
copies.py merge: avoid superfluous filemerges when grafting through renames (issue5407) 2016-10-25 21:01:53 +02:00
crecord.py crecord: add an experimental option for space key to move cursor down 2017-01-08 10:08:29 +08:00
dagparser.py error: get Abort from 'error' instead of 'util' 2015-10-08 12:55:45 -07:00
dagutil.py dagutil: use absolute_import 2015-08-08 19:04:09 -07:00
debugcommands.py repair: implement requirements checking for upgrades 2016-12-18 16:16:54 -08:00
demandimport.py demandimport: do not raise ImportError for unknown item in fromlist 2016-12-19 22:46:00 +09:00
destutil.py update: use single quotes in use warning 2016-09-02 21:49:33 +00:00
diffhelpers.c diffhelpers: fix botched return statement from e48d70075d8a 2015-01-28 13:34:20 -05:00
dirs.c dirs: use PyVarObject_HEAD_INIT 2016-10-13 13:14:14 +02:00
dirstate.py dirstate: fix debug.dirstate.delaywrite to use the new "now" after sleeping 2016-10-18 16:52:35 +02:00
dirstateguard.py dirstateguard: move to new module so I can break some layering violations 2016-11-21 21:29:32 -05:00
discovery.py discovery: use single quotes in use warning 2016-09-20 23:47:30 +00:00
dispatch.py dispatch: make hg --profile wrap reposetup 2016-09-22 12:36:30 -07: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 py3: convert encoding name and mode to str 2016-09-28 20:39:06 +09:00
error.py shelve: make unshelve be able to abort in any case 2016-07-13 16:16:18 +01:00
exchange.py exchange: refactor APIs to obtain bundle data (API) 2016-10-16 10:38:52 -07:00
exewrapper.c exewrapper: add .dll to LoadLibrary() argument 2016-04-27 09:23:39 -07:00
extensions.py extensions: move the "import" logic out from "load" 2016-10-03 03:37:10 +01:00
fancyopts.py flags: allow specifying --no-boolean-flag on the command line (BC) 2016-09-13 22:57:57 -04:00
filelog.py revlog: merge hash checking subfunctions 2016-12-13 14:21:36 +00:00
filemerge.py py3: make format strings unicodes and not bytes 2016-10-08 16:10:58 +02:00
fileset.py help: clarify quotes are needed for filesets.size expressions 2016-09-21 16:33:37 +00:00
formatter.py py3: conditionalize cPickle import by adding in util 2016-06-04 14:38:00 +05:30
graphmod.py revset: add new topographical sort 2016-06-13 18:20:00 +01:00
hbisect.py bisect: move check_state into the bisect module 2016-08-24 04:25:20 +02:00
help.py help: merge revsets.txt into revisions.txt 2017-01-11 11:37:38 -08:00
hg.py merge: add conflict labels to merge command 2016-10-07 08:51:50 -07:00
hook.py hook: split config reading further 2016-04-14 17:03:49 -07:00
httpconnection.py largefiles: use context for file closing 2016-10-08 00:59:41 +02:00
httppeer.py httppeer: advertise and support application/mercurial-0.2 2016-12-24 15:22:18 -07:00
i18n.py i18n: make the locale directory name the same string type as the datapath 2016-10-08 05:26:18 -04:00
keepalive.py keepalive: switch from thread to threading module 2016-07-01 19:17:16 +05:30
localrepo.py manifest: make manifestlog a storecache 2016-10-18 17:33:39 -07:00
lock.py lock: clear postrelease hooks list after usage 2016-04-16 09:00:15 -07:00
lsprof.py lsprof: use print function 2016-01-02 11:40:53 -08:00
lsprofcalltree.py lsprofcalltree: use print function 2016-01-02 11:45:29 -08:00
mail.py mail: handle renamed email.Header 2016-10-07 17:30:11 +02:00
manifest.c manifest: use PyVarObject_HEAD_INIT 2016-10-13 13:17:23 +02:00
manifest.py manifest: make treemanifestctx store the repo 2016-10-18 17:44:42 -07:00
match.py i18n: translate abort messages 2016-06-14 11:53:55 +02:00
mdiff.py patch: add config knob for displaying the index header 2017-01-09 11:13:47 -08:00
merge.py update: enable copy tracing for backwards and non-linear updates 2016-08-25 22:02:26 +02:00
mergeutil.py checkunresolved: move to new package to help avoid import cycles 2016-11-21 21:31:45 -05:00
minirst.py help: search section of help topic by translated section name correctly 2016-05-13 07:19:59 +09:00
mpatch_module.c mpatch: raise MemoryError instead of mpatchError if lalloc() failed 2016-08-07 10:06:56 +09:00
mpatch.c mpatch: raise MemoryError instead of mpatchError if lalloc() failed 2016-08-07 10:06:56 +09:00
mpatch.h mpatch: raise MemoryError instead of mpatchError if lalloc() failed 2016-08-07 10:06:56 +09:00
namespaces.py namespaces: fix name/node confusion 2016-03-16 23:12:43 +00:00
node.py node: use byte literals to construct nullid and wdirid 2016-03-12 14:04:57 -08:00
obsolete.py obsolete: use single quotes in use warning 2016-09-20 23:48:19 +00:00
osutil.c osutil: use PyLongObject on Python 3 for listdir_slot 2016-10-09 13:47:46 +02:00
parser.py parser: extend buildargsdict() to support variable-length positional args 2017-01-09 15:25:52 +09:00
parsers.c parsers: avoid PySliceObject cast on Python 3 2016-10-13 13:34:53 +02:00
patch.py patch: add label for coloring the index extended header 2017-01-09 10:59:45 -08:00
pathencode.c pathencode: use assert() for PyBytes_Check() 2016-10-13 21:42:11 +02:00
pathutil.py util: rename checkcase() to fscasesensitive() (API) 2016-08-30 09:22:53 -07:00
peer.py py3: convert to next() function 2016-05-16 21:30:53 +00:00
phases.py phases: make writing phaseroots file out avoid ambiguity of file stat 2016-06-03 00:44:20 +09:00
policy.py policy: add cffi policy for PyPy 2016-06-07 15:35:58 +02:00
posix.py merge with stable 2017-01-04 14:52:59 -05:00
profiling.py profiling: don't error with statprof when profiling has already started 2016-08-14 18:28:43 -07:00
progress.py progress: stop excessive clearing (issue4801) 2016-05-06 17:53:06 -05:00
pushkey.py pushkey: use absolute_import 2015-08-08 19:57:27 -07:00
pvec.py pvec: use absolute_import 2015-12-21 21:32:58 -08:00
pycompat.py pycompat: only accept a bytestring filepath in Python 2 2016-10-10 23:11:15 +01:00
registrar.py registrar: make format strings unicodes and not bytes 2016-10-07 08:32:18 -04:00
repair.py repair: clean up stale lock file from store backup 2016-11-24 18:45:29 -08:00
repoview.py cleanup: replace uses of util.(md5|sha1|sha256|sha512) with hashlib.\1 2016-06-10 00:12:33 -04:00
revlog.py revlog: move decompress() from module to revlog class (API) 2017-01-02 13:00:16 -08:00
revset.py help: eliminate duplicate text for revset string patterns 2017-01-07 23:35:35 -05:00
scmposix.py py3: replace sys.platform with pycompat.sysplatform (part 1 of 2) 2016-12-19 02:15:24 +05:30
scmutil.py scmutil: ignore EPERM at os.utime, which avoids ambiguity at closing 2016-11-13 06:12:22 +09:00
scmwindows.py py3: conditionalize _winreg import 2016-08-10 04:35:44 +05:30
server.py chgserver: make it a core module and drop extension flags 2016-10-15 14:30:16 +09:00
setdiscovery.py setdiscovery: use iterbatch interface instead of batch 2016-03-01 17:44:41 -05:00
similar.py similar: rename local variable to not collide with previous 2017-01-07 20:43:49 -08:00
simplemerge.py simplemerge: move conflict warning message to filemerge 2015-10-09 13:54:52 -07:00
sshpeer.py i18n: translate abort messages 2016-06-14 11:53:55 +02:00
sshserver.py wireproto: compress data from a generator 2016-10-16 11:10:21 -07:00
sslutil.py sslutil: guard against broken certifi installations (issue5406) 2016-10-19 18:06:14 +02:00
statichttprepo.py manifest: make manifestlog a storecache 2016-10-18 17:33:39 -07:00
statprof.py py3: replace os.environ with encoding.environ (part 4 of 5) 2016-12-18 02:06:00 +05:30
store.py store: py26 compat, don't use a dict comprehension 2016-10-09 12:58:22 +02:00
streamclone.py streamclone: clear caches after writing changes into files for visibility 2016-09-12 03:06:29 +09:00
subrepo.py rebase: provide detailed hint to abort message if working dir is not clean 2017-01-10 09:32:27 +01:00
tagmerge.py tagmerge: use absolute_import 2015-08-08 20:10:46 -07:00
tags.py tags: silence hgtagsfnodes reading failures 2016-04-28 15:40:43 -05:00
templatefilters.py pycompat: switch to util.urlreq/util.urlerr for py3 compat 2016-04-06 23:22:12 +00:00
templatekw.py templatekw: add a "troubles" template keyword 2017-01-06 13:50:16 +01:00
templater.py templater: use unfiltered changelog to calculate shortest() at constant time 2016-10-25 21:49:30 +09:00
transaction.py transaction: open a file with checkambig=True to avoid file stat ambiguity 2016-09-22 21:52:00 +09:00
treediscovery.py error: get Abort from 'error' instead of 'util' 2015-10-08 12:55:45 -07:00
ui.py samplehgrcs: use single quotes in use warning 2016-09-20 23:49:00 +00:00
unionrepo.py revlog: add 'raw' argument to revision and _addrevision 2017-01-05 17:16:07 +00:00
url.py httppeer: advertise and support application/mercurial-0.2 2016-12-24 15:22:18 -07:00
util.h parsers: move PyInt aliasing out of util.h 2016-10-09 13:50:53 +02:00
util.py util: compression APIs to support revlog decompression 2017-01-02 13:27:20 -08:00
verify.py verify: specify unit for ui.progress when checking files 2016-03-11 20:18:41 +08:00
win32.py py3: use pycompat.getcwd instead of os.getcwd 2016-12-22 01:54:17 +05:30
windows.py chgserver: extract utility to bind unix domain socket to long path 2016-05-21 16:52:04 +09:00
wireproto.py wireproto: advertise supported media types and compression formats 2016-12-24 15:21:46 -07:00
worker.py py3: replace os.name with pycompat.osname (part 1 of 2) 2016-12-19 00:16:52 +05:30