Wed, 30 Jan 2019 18:15:38 +0100 sparserevlog: document the config option stable
Boris Feld <boris.feld@octobus.net> [Wed, 30 Jan 2019 18:15:38 +0100] rev 41311
sparserevlog: document the config option This was overlooked when this graduated from experimental.
Wed, 23 Jan 2019 07:49:36 -0500 rust-cpython: raising error.WdirUnsupported stable
Georges Racinet <georges.racinet@octobus.net> [Wed, 23 Jan 2019 07:49:36 -0500] rev 41310
rust-cpython: raising error.WdirUnsupported The Graph implementation of hg-cpython returns the appropriate error upon encounter with the working directory special revision number, and this gives us in particular a code path to test from test-rust-ancestors.py In the current implementation, the exception is actually raised from the iterator instantiation; we are nonetheless consuming the iterator in the test with `list()` in order not to depend on implementation details.
Wed, 23 Jan 2019 07:47:04 -0500 rust: error for WdirUnsupported with cpython conversion as exception stable
Georges Racinet <georges.racinet@octobus.net> [Wed, 23 Jan 2019 07:47:04 -0500] rev 41309
rust: error for WdirUnsupported with cpython conversion as exception This introduces WorkingDirectoryUnsupported as an enum variant of GraphError in the core and converts it to the expected `mercurial.error.WdirUnsupported`.
Wed, 23 Jan 2019 07:39:27 -0500 rust: working directory revision number constant stable
Georges Racinet <georges.racinet@octobus.net> [Wed, 23 Jan 2019 07:39:27 -0500] rev 41308
rust: working directory revision number constant This introduces the constant, but does not use it anywhere yet.
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 41307
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 41306
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 41305
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 41304
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 41303
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 41302
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.
Sun, 20 Jan 2019 11:57:36 +0900 rust: add comment about lack of wdirrev handling 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."
Sun, 20 Jan 2019 11:51:21 +0900 templatekw: fix crash on multiple latesttags resolution at wdir (issue6055) stable
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.
Sun, 20 Jan 2019 11:39:16 +0900 test-template-keywords: add test for {latesttag} of wdir() revision stable
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.
Fri, 18 Jan 2019 23:32:26 -0800 narrow: fix crash when restoring backup in legacy repo stable
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
Fri, 18 Jan 2019 14:21:47 +0100 revset: introduce an internal `_rev` predicate for '%d' usage stable
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.
Fri, 18 Jan 2019 16:03:37 +0100 mmap: backed out changeset 875d2af8cb4e stable
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.
Fri, 18 Jan 2019 16:02:26 +0100 mmap: backed out changeset 74a9f428227e stable
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.
Fri, 18 Jan 2019 23:22:56 -0500 help: document the minimumhgversion variable for extensions stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 18 Jan 2019 23:22:56 -0500] rev 41294
help: document the minimumhgversion variable for extensions
Fri, 18 Jan 2019 23:13:04 -0500 help: modernize the example for command registration stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 18 Jan 2019 23:13:04 -0500] rev 41293
help: modernize the example for command registration
Fri, 18 Jan 2019 13:32:02 -0500 Added signature for changeset 593718ff5844 stable
Augie Fackler <raf@durin42.com> [Fri, 18 Jan 2019 13:32:02 -0500] rev 41292
Added signature for changeset 593718ff5844
Fri, 18 Jan 2019 13:32:00 -0500 Added tag 4.9rc0 for changeset 593718ff5844 stable
Augie Fackler <raf@durin42.com> [Fri, 18 Jan 2019 13:32:00 -0500] rev 41291
Added tag 4.9rc0 for changeset 593718ff5844
Fri, 18 Jan 2019 13:28:22 -0500 merge default into stable for 4.9 release stable 4.9rc0
Augie Fackler <augie@google.com> [Fri, 18 Jan 2019 13:28:22 -0500] rev 41290
merge default into stable for 4.9 release
Thu, 10 Jan 2019 14:57:01 +0100 update: fix edge-case with update.atomic-file and read-only files
Boris Feld <boris.feld@octobus.net> [Thu, 10 Jan 2019 14:57:01 +0100] rev 41289
update: fix edge-case with update.atomic-file and read-only files We used to create the tempfile with the original file mode. That means creating a read-only tempfile when the original file is read-only, which crash if we need to write on the tempfile. The file in the working directory ends up being writable with and without the atomic update config, so the behavior is the same.
Wed, 16 Jan 2019 16:49:15 -0800 scmutil: drop unreachable except clause
Martin von Zweigbergk <martinvonz@google.com> [Wed, 16 Jan 2019 16:49:15 -0800] rev 41288
scmutil: drop unreachable except clause socket.error is a subclass of IOError, which we catch higher up. It seems to have been this way since 020a896a5292 (dispatch: sort exception handlers, 2009-01-12), so let's celebrate the 10 year anniversary (a few days late) of it being wrong by deleting it. Differential Revision: https://phab.mercurial-scm.org/D5626
Wed, 16 Jan 2019 21:32:15 -0800 tests: suppress "Checked out 1 paths of <hash>" from modern git
Martin von Zweigbergk <martinvonz@google.com> [Wed, 16 Jan 2019 21:32:15 -0800] rev 41287
tests: suppress "Checked out 1 paths of <hash>" from modern git test-convert-git.t is failiing since git commit 0f086e6dca (checkout: print something when checking out paths, 2018-11-13). Suppress the new output by disambiguating the arguments with a "--" separator. Differential Revision: https://phab.mercurial-scm.org/D5625
Sun, 13 Jan 2019 14:56:26 +0900 revlog: document that mmap resources are released implicitly by GC
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Jan 2019 14:56:26 +0900] rev 41286
revlog: document that mmap resources are released implicitly by GC It's okay-ish, but currently the open fd and the mapping itself are leaked until the indexdata is deallocated. If revlog had close(), the underlying resources should be closed there as well, but AFAIK there's no such hook point.
Wed, 26 Sep 2018 21:41:52 +0900 ui: proxy protect/restorestdio() calls to update internal flag
Yuya Nishihara <yuya@tcha.org> [Wed, 26 Sep 2018 21:41:52 +0900] rev 41285
ui: proxy protect/restorestdio() calls to update internal flag It should be better to manage the redirection flag solely by the ui class.
Wed, 26 Sep 2018 21:29:13 +0900 ui: move protectedstdio() context manager from procutil
Yuya Nishihara <yuya@tcha.org> [Wed, 26 Sep 2018 21:29:13 +0900] rev 41284
ui: move protectedstdio() context manager from procutil This is a follow-up series for 23a00bc90a3c, "chgserver: do not send system() back to client if stdio redirected." The function is renamed using ui terms.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 +3000 +10000 tip