Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 16:53:24 -0800] rev 41313
tests: add b'' to test-missing-capability.t
The test now passes on Python 3.
# skip-blame just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D5645
Augie Fackler <raf@durin42.com> [Tue, 22 Jan 2019 11:41:22 -0500] rev 41312
fuzz: exercise more of the lazymanifest code
Differential Revision: https://phab.mercurial-scm.org/D5643
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
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
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
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.
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.
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.
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.
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
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.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Jan 2019 10:55:45 -0800] rev 41302
merge with stable
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Jan 2019 11:57:36 +0900] rev 41301
rust: add comment about lack of wdirrev handling
If hg is compiled with rust support, 'only(wdir())' crashed as
"rustext.GraphError: ('ParentOutOfRange',
2147483647)", which should instead
say "abort: working directory revision cannot be specified."
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Jan 2019 11:51:21 +0900] rev 41300
templatekw: fix crash on multiple latesttags resolution at wdir (
issue6055)
It appears not easy to fix only() to support wdir(), so this patch works
around the issue by getlatesttags(). The "+1" after len(changes) doesn't
matter since ctx never changes while sorting. It's just for clarity.
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Jan 2019 11:39:16 +0900] rev 41299
test-template-keywords: add test for {latesttag} of wdir() revision
It's probably broken since
fb672eac2702, "templatekw: choose {latesttag}
by len(changes), not date (
issue5659)". only() doesn't support wdir.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Jan 2019 23:32:26 -0800] rev 41298
narrow: fix crash when restoring backup in legacy repo
Using --addremove when committing in an old repo (before we started
keeping .hg/narrowspec.dirstate) results in a crash. The test
case modified in this patch would crash like this:
abort: $ENOENT$
The issue is that when the dirstateguard is aborted, it tries to
restore the backup of .hg/narrowspec.dirstate. However, since we were
in an old repo, that file did not get created when the dirstateguard
was created. Note that the dirstateguard is not used unless
--addremove is passed.
This patch fixes the bug by making restorewcbackup() not fail if the
backup doesn't exist. I also made clearwcbackup() safe, just in case.
Differential Revision: https://phab.mercurial-scm.org/D5634
Boris Feld <boris.feld@octobus.net> [Fri, 18 Jan 2019 14:21:47 +0100] rev 41297
revset: introduce an internal `_rev` predicate for '%d' usage
In
24a1f67bb75a, we aligned "%d" behavior on "%ld" one, invalid revisions got
silently ignored. However, soon after in
8aca89a694d4 and
26b0a7514f01, a side
effect changed the behavior of "%ld" to no longer silently filter invalid
revisions.
After discussion on the mailing list, it was decided to align on the new %ld
behavior:
https://www.mercurial-scm.org/pipermail/mercurial-devel/2019-January/127291.html
This changeset introduce a '_rev()' predicated that keep the benefit from
24a1f67bb75a while enforcing a more strict checking on the inputs.
Boris Feld <boris.feld@octobus.net> [Fri, 18 Jan 2019 16:03:37 +0100] rev 41296
mmap: backed out changeset
875d2af8cb4e
There have been concrete and theoretical issues raised, this will need more
work during the next cycle.
Boris Feld <boris.feld@octobus.net> [Fri, 18 Jan 2019 16:02:26 +0100] rev 41295
mmap: backed out changeset
74a9f428227e
There have been concrete and theoretical issues raised, this will need more
work during the next cycle.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 18 Jan 2019 23:22:56 -0500] rev 41294
help: document the minimumhgversion variable for extensions
Matt Harbison <matt_harbison@yahoo.com> [Fri, 18 Jan 2019 23:13:04 -0500] rev 41293
help: modernize the example for command registration
Augie Fackler <raf@durin42.com> [Fri, 18 Jan 2019 13:32:02 -0500] rev 41292
Added signature for changeset
593718ff5844
Augie Fackler <raf@durin42.com> [Fri, 18 Jan 2019 13:32:00 -0500] rev 41291
Added tag 4.9rc0 for changeset
593718ff5844
Augie Fackler <augie@google.com> [Fri, 18 Jan 2019 13:28:22 -0500] rev 41290
merge default into stable for 4.9 release