Tue, 22 Jan 2019 11:41:09 -0500 fuzz: restrict manifest input size
Augie Fackler <raf@durin42.com> [Tue, 22 Jan 2019 11:41:09 -0500] rev 41311
fuzz: restrict manifest input size Again, let's keep the fuzzer from getting excited about huge inputs. Differential Revision: https://phab.mercurial-scm.org/D5642
Tue, 22 Jan 2019 11:02:10 -0500 fuzz: exercise more of the revlog API
Augie Fackler <raf@durin42.com> [Tue, 22 Jan 2019 11:02:10 -0500] rev 41310
fuzz: exercise more of the revlog API I noticed in the coverage report that we didn't have much coverage in revlog.py. Let's try and get some of the more interesting bits tested by the fuzzer. I ran this locally for a few minutes to verify that I appear to be calling the various functions in reasonable ways. Differential Revision: https://phab.mercurial-scm.org/D5641
Tue, 22 Jan 2019 11:18:05 -0500 fuzz: don't allow enormous revlog inputs either
Augie Fackler <raf@durin42.com> [Tue, 22 Jan 2019 11:18:05 -0500] rev 41309
fuzz: don't allow enormous revlog inputs either I'm about to make the fuzzer do more, and without this it was getting enthusiastic about large (and therefore slow) inputs that I don't think buy us much. Differential Revision: https://phab.mercurial-scm.org/D5640
Thu, 24 Jan 2019 21:38:02 +0900 ui: remove unreachable branches and function calls from write() (issue6059) stable
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Jan 2019 21:38:02 +0900] rev 41308
ui: remove unreachable branches and function calls from write() (issue6059) This is at least faster than ui.write() of 4.8.2. $ HGRCPATH=/dev/null hg files -R mozilla-central --time >/dev/null 4.8.2: time: real 2.340 secs (user 2.310+0.000 sys 0.020+0.000) 4.9rc0: time: real 2.580 secs (user 2.550+0.000 sys 0.020+0.000) this: time: real 2.230 secs (user 2.210+0.000 sys 0.020+0.000) Maybe the formatter should own a resolved write() function because it will just call dest.write(msg) most of the time, but that would be too much for stable.
Thu, 24 Jan 2019 21:35:55 +0900 ui: inline _writenobuf() into write() due to performance issue stable
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Jan 2019 21:35:55 +0900] rev 41307
ui: inline _writenobuf() into write() due to performance issue I'll remove redundant conditions later in this series.
Thu, 24 Jan 2019 21:34:48 +0900 ui: inline _write() into write() due to performance issue stable
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Jan 2019 21:34:48 +0900] rev 41306
ui: inline _write() into write() due to performance issue I'll remove redundant conditions later in this series.
Wed, 28 Nov 2018 22:36:24 +0900 ui: optimize buffered write with no label stable
Yuya Nishihara <yuya@tcha.org> [Wed, 28 Nov 2018 22:36:24 +0900] rev 41305
ui: optimize buffered write with no label This was spotted while making fastannotate faster again after ditching its own formatter. Since I'm going to inline _write() into ui.write(), I decided to include this patch in this series. Here, the cost of '(self.label(a, label) for a in args)' was significant in hot loops.
Wed, 23 Jan 2019 18:07:42 -0500 partialdiscovery: avoid `undecided` related computation sooner than necessary stable
Boris Feld <boris.feld@octobus.net> [Wed, 23 Jan 2019 18:07:42 -0500] rev 41304
partialdiscovery: avoid `undecided` related computation sooner than necessary Changeset 1d30be90c move the update of the `undecided` set within the `partialdiscovery` object in order to clarify the API. The update to the `undecided` set was unconditional in 1d30be90c and the first access to the `self.undecided` property triggered the initial computation of the set of undecided revisions. As a result, the set was computed much earlier, at a time where less information is available, immediately followed by an update of this set to remove common revisions. To fix this regression, we ignore the `undecided` related logic in `addcommons` when that `undecided` set has not been computed yet. Code that actually needs to know the `undecided` set will trigger its computation later. The change has no effects on semantic because the initial computation `undecided` set takes all knowns `common` into account. Example performance running `hg debugdiscovery` from a pypy repo missing 10 changesets: 870a89c6909d: 52.3ms (regression parent) 1d30be90c9dc: 72.0ms (regression) 5a5f504a7175: 64.8ms (this fix parent) this fix: 52.6ms
Mon, 21 Jan 2019 22:14:29 +0900 revlog: fix resolution of revlog version 0 stable
Yuya Nishihara <yuya@tcha.org> [Mon, 21 Jan 2019 22:14:29 +0900] rev 41303
revlog: fix resolution of revlog version 0 This partially backs out cecf3f8bccd3, "revlog: always process opener options." My understanding is that if there's no "revlog1" nor "revlog2" in .hg/requires, the repository should stick to the v0 format. The reasoning is briefly described in 31a5973fcf96, "revlog: get rid of defversion." Maybe we can drop support for missing opener options, but I didn't do that in this patch.
Tue, 22 Jan 2019 10:55:45 -0800 merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Jan 2019 10:55:45 -0800] rev 41302
merge with stable
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip