Sun, 06 Mar 2016 14:28:02 -0800 changelog: add class to represent parsed changelog revisions
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 06 Mar 2016 14:28:02 -0800] rev 28487
changelog: add class to represent parsed changelog revisions Currently, changelog entries are parsed into their respective components at read time. Many operations are only interested in a subset of fields of a changelog entry. The parsing and storing of all the fields adds avoidable overhead. This patch introduces the "changelogrevision" class. It takes changelog raw text and exposes the parsed results as attributes. The code for parsing changelog entries has been moved into its construction function. changelog.read() has been modified to use the new class internally while maintaining its existing API. Future patches will make revision parsing lazy. We implement the construction function of the new class with __new__ instead of __init__ so we can use a named tuple to represent the empty revision. This saves overhead and complexity of coercing later versions of this class to represent an empty instance. While we are here, we add a method on changelog to obtain an instance of the new type. The overhead of constructing the new class regresses performance of revsets accessing this data: author(mpm) 0.896565 0.929984 desc(bug) 0.887169 0.935642 105% date(2015) 0.878797 0.908094 extra(rebase_source) 0.865446 0.922624 106% author(mpm) or author(greg) 1.801832 1.902112 105% author(mpm) or desc(bug) 1.812438 1.860977 date(2015) or branch(default) 0.968276 1.005824 author(mpm) or desc(bug) or date(2015) or extra(rebase_source) 3.656193 3.743381 Once lazy parsing is implemented, these revsets will all be faster than before. There is no performance change on revsets that do not access this data. There /could/ be a performance regression on operations that perform several changelog reads. However, I can't think of anything outside of revsets and `hg log` (basically the same as a revset) that would be impacted.
Fri, 11 Mar 2016 11:51:22 -0500 httppeer: compute header names only once
Augie Fackler <augie@google.com> [Fri, 11 Mar 2016 11:51:22 -0500] rev 28486
httppeer: compute header names only once This also helps make the code a little more readable.
Fri, 11 Mar 2016 11:33:43 -0500 httppeer: indent existing argument handling with if True
Augie Fackler <augie@google.com> [Fri, 11 Mar 2016 11:33:43 -0500] rev 28485
httppeer: indent existing argument handling with if True I'm about to add another case, so it makes sense to split this out to make the semantic changes in the next change more obvious.
Fri, 11 Mar 2016 11:26:12 -0500 httppeer: move size computation later in _callstream
Augie Fackler <augie@google.com> [Fri, 11 Mar 2016 11:26:12 -0500] rev 28484
httppeer: move size computation later in _callstream A future change will alter some of the arg-sending logic in a way that matters for request body size. Centralizing the logic now will make later patches easier to review.
Fri, 11 Mar 2016 11:24:50 -0500 httppeer: do less splitting on httpheader value
Augie Fackler <augie@google.com> [Fri, 11 Mar 2016 11:24:50 -0500] rev 28483
httppeer: do less splitting on httpheader value We only care about the first value split off, so only split off the first value.
Sat, 27 Feb 2016 21:17:37 +0900 chgserver: remove outdated comment about setvbuf()
Yuya Nishihara <yuya@tcha.org> [Sat, 27 Feb 2016 21:17:37 +0900] rev 28482
chgserver: remove outdated comment about setvbuf() I've replaced setvbuf() by fdopen() before merging chg into the core, so this comment is wrong. https://bitbucket.org/yuja/chg/commits/5c24e72bc447
Tue, 01 Mar 2016 04:53:43 +0000 transplant: use absolute_import
timeless <timeless@mozdev.org> [Tue, 01 Mar 2016 04:53:43 +0000] rev 28481
transplant: use absolute_import
Fri, 11 Mar 2016 16:07:22 +0000 transplant: switch to using nodemod for hex+short
timeless <timeless@mozdev.org> [Fri, 11 Mar 2016 16:07:22 +0000] rev 28480
transplant: switch to using nodemod for hex+short
Wed, 02 Mar 2016 16:32:52 +0000 convert: bzr use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 16:32:52 +0000] rev 28479
convert: bzr use absolute_import
Fri, 11 Mar 2016 13:00:20 +0000 chgserver: include [extdiff] in confighash
Jun Wu <quark@fb.com> [Fri, 11 Mar 2016 13:00:20 +0000] rev 28478
chgserver: include [extdiff] in confighash extdiff's uisetup will register new commands. If we do not include it in confighash, changes to [extdiff] will not get new commands registered. This patch adds extdiff to confighash and makes it possible for chg to pass test-extdiff.t.
(0) -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip