Mon, 31 Jan 2022 14:26:35 +0100 dirstate: rename the filegenerator used for writing
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 31 Jan 2022 14:26:35 +0100] rev 48697
dirstate: rename the filegenerator used for writing We will need a different name in the next changesets. Changing the name is actually not that trivial so we do it in its own changeset. Differential Revision: https://phab.mercurial-scm.org/D12123
Mon, 31 Jan 2022 08:23:54 +0100 dirstate: use a context manager when writing the dirstate
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 31 Jan 2022 08:23:54 +0100] rev 48696
dirstate: use a context manager when writing the dirstate This make sure the file is closed in a timely manner. We define a lambda for the file opening. It might seems a bit overkill here but a future changeset will need to do more of those. Differential Revision: https://phab.mercurial-scm.org/D12122
Wed, 02 Feb 2022 17:24:05 +0100 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Wed, 02 Feb 2022 17:24:05 +0100] rev 48695
branching: merge stable into default
Wed, 26 Jan 2022 15:32:18 -0800 arbitraryfilectx: use our existing helpers for reading and writing files
Martin von Zweigbergk <martinvonz@google.com> [Wed, 26 Jan 2022 15:32:18 -0800] rev 48694
arbitraryfilectx: use our existing helpers for reading and writing files Differential Revision: https://phab.mercurial-scm.org/D12090
Thu, 11 Feb 2021 22:52:43 -0800 fix: remove unnecessary and overly strict check for divergence
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Feb 2021 22:52:43 -0800] rev 48693
fix: remove unnecessary and overly strict check for divergence `rewriteutil.precheck()` checks for divergence these days, so we can remove the redundant check in `hg fix`. Differential Revision: https://phab.mercurial-scm.org/D12088
Wed, 26 Jan 2022 10:11:01 -0800 encoding: fix trim() to be O(n) instead of O(n^2)
Martin von Zweigbergk <martinvonz@google.com> [Wed, 26 Jan 2022 10:11:01 -0800] rev 48692
encoding: fix trim() to be O(n) instead of O(n^2) `encoding.trim()` iterated over the possible lengths smaller than the input and created a slice for each. It then calculated the column width of the result, which is of course O(n), so the overall algorithm was O(n). This patch rewrites it to iterate over the unicode characters, keeping track of the length so far. Also, the old algorithm started from the end of the string, which made it much worse when the input is large and the limit is small (such as the typical 72 we pass to it). You can time it by running something like this: ``` time python3 -c 'from mercurial.utils import stringutil; print(stringutil.ellipsis(b"0123456789" * 1000, 5))' ``` That drops from 4.05 s to 83 ms with this patch (and most of that is of course startup time). Differential Revision: https://phab.mercurial-scm.org/D12089
Tue, 11 Jan 2022 21:40:08 +0100 share-safe: enable by default (BC)
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jan 2022 21:40:08 +0100] rev 48691
share-safe: enable by default (BC) The feature have been around for a year (4 version) and is quite important. Lets make it enabled by default. Differential Revision: https://phab.mercurial-scm.org/D11997
Tue, 11 Jan 2022 09:56:03 +0100 share-safe: add support for static-http repository
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jan 2022 09:56:03 +0100] rev 48690
share-safe: add support for static-http repository We need to read the second requirements file in the static-http case too. Otherwise, static-http would miss most of the requirements and misbehave. Differential Revision: https://phab.mercurial-scm.org/D11996
Tue, 11 Jan 2022 09:36:10 +0100 legacy-revlog: fix requirement computation when cloning legacy repo
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jan 2022 09:36:10 +0100] rev 48689
legacy-revlog: fix requirement computation when cloning legacy repo The oldest format of repository does not have requirements so we need to treat them differently when cloning such repository. The previous code had issue whenever we start using a working-copy-only requirements. The "legacy" format is signaled using an empty requirements list. If we add working-copy-only requirements to it, this is no longer empty, and no longer legacy. The new code fix this, and will get fully tested in a couple of changeset, once the share-safe become the default. Differential Revision: https://phab.mercurial-scm.org/D11995
Mon, 10 Jan 2022 12:48:35 +0100 requirements: do not warn about dropping share-safe, unless explicitly set
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jan 2022 12:48:35 +0100] rev 48688
requirements: do not warn about dropping share-safe, unless explicitly set If we are just altering the default value, this is "fine". This will get tested once share-safe become the default. Differential Revision: https://phab.mercurial-scm.org/D11994
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 tip