Thu, 09 Mar 2023 13:02:13 -0600 fastexport: rework newline logic
Felipe Contreras <felipe.contreras@gmail.com> [Thu, 09 Mar 2023 13:02:13 -0600] rev 50435
fastexport: rework newline logic Newlines should only be added when otherwise the stream would look weird without them (on blobs), therefore they are the exception. Flip the logic so they are added, not skipped.
Mon, 06 Mar 2023 11:27:57 +0000 encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 06 Mar 2023 11:27:57 +0000] rev 50434
encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings Apparently the code uses "+=" with a bytes object, which is linear-time, so the whole encoding is quadratic-time. This patch makes us use a bytearray object, instead, which has a(n amortized-)constant-time append operation. The encoding is still not particularly fast, but at least a 10MB file takes tens of seconds, not many hours to encode.
Wed, 08 Mar 2023 11:01:11 +0100 bundle: prevent implicite bundling of internal changeset
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Mar 2023 11:01:11 +0100] rev 50433
bundle: prevent implicite bundling of internal changeset Now that the two mains source of on-disk bundle are preventing the inclusion of internal changesets in their bundling. We can add a lower level check that would prevent any other leakage of internal-phase changesets. We keep the door open to some usage, like the temporary bundle using during strip for example.
Fri, 10 Mar 2023 07:19:25 +0100 bundle: abort if the user request bundling of internal changesets
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 10 Mar 2023 07:19:25 +0100] rev 50432
bundle: abort if the user request bundling of internal changesets See inline comments for details.
Fri, 10 Mar 2023 07:10:19 +0100 strip: do now include internal changeset in the strip backup
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 10 Mar 2023 07:10:19 +0100] rev 50431
strip: do now include internal changeset in the strip backup See inline comment for details.
Wed, 08 Mar 2023 11:00:30 +0100 revset: add `_internal()` predicate
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Mar 2023 11:00:30 +0100] rev 50430
revset: add `_internal()` predicate This predicate help core code to select internal changeset (in the internal phase).
Fri, 10 Mar 2023 03:41:18 +0100 strip: drop the assert about bundled revision
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 10 Mar 2023 03:41:18 +0100] rev 50429
strip: drop the assert about bundled revision This is working well, so no need for extract computation. See the previous changeset for the rationnal of still have these assert around for a short interval.
Thu, 09 Mar 2023 15:06:59 +0100 strip: explicitly compute the boundary of the backup bundle
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 09 Mar 2023 15:06:59 +0100] rev 50428
strip: explicitly compute the boundary of the backup bundle We want to make change to the set of backed up revision in a future changeset, we start with a change of the computation without any changes in the semantic to clarify later changeset. The could of costly assert are here to testify that the result is still correct. They will be removed in the next changesets, but I wanted them in this changeset to help in case someone bisect a regression to this changeset in the future.
Fri, 10 Mar 2023 04:04:10 +0100 outgoing: fix common-heads computation from `missingroots` argument
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 10 Mar 2023 04:04:10 +0100] rev 50427
outgoing: fix common-heads computation from `missingroots` argument When initializing a `outgoing` object, the `common set` can be defined explicitly (with the `commonheads` argument`) or implicitly (with the missingroots arguments). It turns out the logic to compute `commonheads` from `missingroots` is buggy, as it does not consider the parents of enough changesets. Previously, it only considered parents of "missingroots` items, while it need to consider all parents of missing. Here is an example: F |\ C E | | B D |/ A If we use [E] as missing-roots, the missing set is [E, F], and the common-heads are [C, D]. However you cannot only consider the parent of [E] to find them, as [C] is not a parent of [E]. This already fix the bundle generated in one test, and it would prevent many other to misbehave with future change from this series.
Thu, 09 Mar 2023 01:26:04 +0100 bundle: include required phases when saving a bundle (issue6794)
Jason R. Coombs <jaraco@jaraco.com>, Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 09 Mar 2023 01:26:04 +0100] rev 50426
bundle: include required phases when saving a bundle (issue6794) We now properly computes and includes phases above secret in bundle, previously, they would be skipped, and then the code computing them would crash. Note that from this changeset, we also include the heads associated with the changegroup's "target" phase. This turned out to be necessary to ensure the movement of changeset included in the bundle, but already known locally. This explain why lines for "secret" heads appears in multiple tests.
Wed, 08 Mar 2023 17:33:33 +0100 bundle: add test bundling changeset in the "archived" phase
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Mar 2023 17:33:33 +0100] rev 50425
bundle: add test bundling changeset in the "archived" phase Having this test highlight that phase bundling above secret is significantly broken. Fixes coming in the next changesets.
Wed, 08 Mar 2023 15:23:22 +0100 bundle: introduce a "v3" spec
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Mar 2023 15:23:22 +0100] rev 50424
bundle: introduce a "v3" spec This is a small update from "v2", we use the freshly out of experimental changelog version "03' format (alignment with bundle version is a coincidence) and we now bundle phases by default. We shall use v3 as the default bundle type later, when changegroup version '03' is a bit more established
Wed, 08 Mar 2023 15:43:23 +0100 bundle: add some phase boundary in the bundle type test case
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Mar 2023 15:43:23 +0100] rev 50423
bundle: add some phase boundary in the bundle type test case Same logic as the previous one, we want the tests to cover richer cases. It actually reveal a bug in `hg bundle foo.hg REMOTE` involving secret. So this is definitly not a bad idea.
Wed, 08 Mar 2023 15:21:39 +0100 bundle: expand the graph we us for bundletype/bundlespec tests
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Mar 2023 15:21:39 +0100] rev 50422
bundle: expand the graph we us for bundletype/bundlespec tests We are about to test more things, especially phase bundling, so we need a graph a bit more complex than a single node. The test "code" was a bit simplified in the process, but no test-semantic changes were made.
Tue, 07 Mar 2023 04:50:29 +0100 revset: include all non-public phases in _notpublic
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Mar 2023 04:50:29 +0100] rev 50421
revset: include all non-public phases in _notpublic We forgot up to update this when new phases were added.
Thu, 02 Mar 2023 04:11:29 +0100 dirstate: remove _actual_file_name methode
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 04:11:29 +0100] rev 50420
dirstate: remove _actual_file_name methode This is dead-code
(0) -30000 -10000 -3000 -1000 -300 -100 -16 +16 +100 +300 +1000 tip