Fri, 06 Aug 2010 12:59:13 -0500 Merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 06 Aug 2010 12:59:13 -0500] rev 11759
Merge with stable
Fri, 06 Aug 2010 12:18:33 -0500 chunkbuffer: use += rather than cStringIO to reduce memory footprint stable
Matt Mackall <mpm@selenic.com> [Fri, 06 Aug 2010 12:18:33 -0500] rev 11758
chunkbuffer: use += rather than cStringIO to reduce memory footprint This significantly refactors the read() loop to use a queue of chunks. The queue is alternately filled to at least 256k and then emptied by concatenating onto the output buffer. For very large read sizes, += uses less memory because it can resize the target string in place.
Thu, 05 Aug 2010 16:17:39 -0500 httprepo: decompress stream incrementally to reduce memory usage stable
Matt Mackall <mpm@selenic.com> [Thu, 05 Aug 2010 16:17:39 -0500] rev 11757
httprepo: decompress stream incrementally to reduce memory usage
Thu, 05 Aug 2010 16:17:33 -0500 verify: initialize rp variable in case we hit out of memory stable
Matt Mackall <mpm@selenic.com> [Thu, 05 Aug 2010 16:17:33 -0500] rev 11756
verify: initialize rp variable in case we hit out of memory
Thu, 05 Aug 2010 16:17:17 -0500 merge: drop reference to file contents after write stable
Matt Mackall <mpm@selenic.com> [Thu, 05 Aug 2010 16:17:17 -0500] rev 11755
merge: drop reference to file contents after write This reduces memory usage on large consecutive gets.
Thu, 05 Aug 2010 16:17:17 -0500 revlog: drop cache after use to save memory footprint stable
Matt Mackall <mpm@selenic.com> [Thu, 05 Aug 2010 16:17:17 -0500] rev 11754
revlog: drop cache after use to save memory footprint If we reconstruct back to back large versions, we need to drop the cache first to avoid doubling memory usage.
Thu, 05 Aug 2010 16:17:17 -0500 verify: reduce memory footprint when unpacking files stable
Matt Mackall <mpm@selenic.com> [Thu, 05 Aug 2010 16:17:17 -0500] rev 11753
verify: reduce memory footprint when unpacking files By never holding a reference to the unpacked string, we avoid holding two consecutive large files in memory.
Thu, 05 Aug 2010 16:17:17 -0500 verify: report exceptions that don't have a str() method stable
Matt Mackall <mpm@selenic.com> [Thu, 05 Aug 2010 16:17:17 -0500] rev 11752
verify: report exceptions that don't have a str() method
Wed, 04 Aug 2010 13:21:11 -0500 color: fix test-diff-color breakage
Matt Mackall <mpm@selenic.com> [Wed, 04 Aug 2010 13:21:11 -0500] rev 11751
color: fix test-diff-color breakage
Tue, 03 Aug 2010 13:02:11 -0400 hgcia/color: remove star imports
Brodie Rao <brodie@bitheap.org> [Tue, 03 Aug 2010 13:02:11 -0400] rev 11750
hgcia/color: remove star imports This plays nicer with demandimport and allows pyflakes to detect undefined names.
Tue, 03 Aug 2010 13:59:14 -0300 hgfixes: added a fixer that makes bytes to be formatted correctly
Renato Cunha <renatoc@gmail.com> [Tue, 03 Aug 2010 13:59:14 -0300] rev 11749
hgfixes: added a fixer that makes bytes to be formatted correctly This patch implement a fixer that replaces all calls to the '%' when bytes arguments are used to a call to bytesformatter(), a function that knows how to format byte strings. As one can't be sure if a formatting call is done when only variables are used in a '%' call, these calls are also translated. The bytesformatter, in runtime, makes sure to return the "raw" % operation if that's what was intended.
Tue, 03 Aug 2010 13:52:48 -0300 py3kcompat: added a "compatibility layer" for py3k
Renato Cunha <renatoc@gmail.com> [Tue, 03 Aug 2010 13:52:48 -0300] rev 11748
py3kcompat: added a "compatibility layer" for py3k This patch adds some ugly constructs. The first of them is bytesformatter, a function that formats strings like when '%' is called. The main motivation for this function is py3k's strange behavior: >>> 'foo %s' % b'bar' "foo b'bar'" >>> b'foo %s' % b'bar' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for %: 'bytes' and 'bytes' >>> b'foo %s' % 'bar' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for %: 'bytes' and 'str' In other words, if we can't format bytes with bytes, and recall that all mercurial strings will be converted by a fixer, then things will break badly if we don't take a similar approach. The other addition with this patch is that the os.environ dictionary is monkeypatched to have bytes items. Hopefully this won't be needed in the future, as python 3.2 might get a os.environb dictionary that holds bytes items.
Tue, 03 Aug 2010 13:41:47 -0300 hgfixes: add a fixer to convert plain strings to bytestrings
Renato Cunha <renatoc@gmail.com> [Tue, 03 Aug 2010 13:41:47 -0300] rev 11747
hgfixes: add a fixer to convert plain strings to bytestrings This patch implements a 2to3 fixer that converts all plain strings in a python source file to byte strings syntax. Example: foo = 'Normal string' would become foo = b'Normal string' The motivation behind this fixer can be found in http://selenic.com/pipermail/mercurial-devel/2010-June/022363.html or, in other words: the current hg source assumes that _most_ strings are "meant" to be byte sequences, so it makes sense to make the convertion implemented by this patch. As mentioned above, not all mercurial modules want to use strings as bytes, examples include i18n (which uses unicode), and demandimport (in py3k, module names are normal strings, thus unicode, and there's no need for a convertion). Therefore, these modules are blacklisted in the fixer. There are also a few functions that can take only unicode arguments, thus the convertion shouldn't be done for those.
Tue, 03 Aug 2010 19:38:19 +0530 revlog: add shallow header flag
Vishakh H <vsh426@gmail.com> [Tue, 03 Aug 2010 19:38:19 +0530] rev 11746
revlog: add shallow header flag REVLOGSHALLOW header flag to mark revlog as shallow. The _shallow attribute of the revlog is used to check if the header flag is set.
Tue, 03 Aug 2010 19:38:19 +0530 revlog: add punched revision flag
Vishakh H <vsh426@gmail.com> [Tue, 03 Aug 2010 19:38:19 +0530] rev 11745
revlog: add punched revision flag index flag to identify a revision as punched, i.e. it contains no data. REVIDX_PUNCHED_FLAG = 2, is used to mark a revision as punched. REVIDX_KNOWN_FLAGS is the accumulation of all index flags.
(0) -10000 -3000 -1000 -300 -100 -15 +15 +100 +300 +1000 +3000 +10000 +30000 tip