Mon, 03 Apr 2023 15:58:36 +0200 rustdoc: wording for checkexec
Georges Racinet <georges.racinet@octobus.net> [Mon, 03 Apr 2023 15:58:36 +0200] rev 50450
rustdoc: wording for checkexec Notably separating the summary line for correct display at module level.
Mon, 03 Apr 2023 15:32:39 +0200 rustdoc: fixed warnings about links
Georges Racinet <georges.racinet@octobus.net> [Mon, 03 Apr 2023 15:32:39 +0200] rev 50449
rustdoc: fixed warnings about links This is the minimal fix making those that actually were supposed to be links to work (including in private items).
Thu, 30 Mar 2023 12:21:38 +0200 rust-changelog: introduce ChangelogEntry parent entries accessors
Georges Racinet <georges.racinet@octobus.net> [Thu, 30 Mar 2023 12:21:38 +0200] rev 50448
rust-changelog: introduce ChangelogEntry parent entries accessors Straightforwards now that lifetimes are explicit in `RevlogEntry` parent accessors.
Thu, 30 Mar 2023 12:20:53 +0200 rust-revlog: fix lifetime problem for RevlogEntry parent entries accessors
Georges Racinet <georges.racinet@octobus.net> [Thu, 30 Mar 2023 12:20:53 +0200] rev 50447
rust-revlog: fix lifetime problem for RevlogEntry parent entries accessors Without this, the lifetime of the result is equated to the lifetime of the `self` reference, preventing callers, e.g., to take a `RevlogEntry` and return its `p1_entry()`, as it looks like returning something that does not outlive the *reference to* the `RevlogEntry`.
Thu, 30 Mar 2023 12:14:57 +0200 rust-revlog: explicit naming for `RevlogEntry` lifetime
Georges Racinet <georges.racinet@octobus.net> [Thu, 30 Mar 2023 12:14:57 +0200] rev 50446
rust-revlog: explicit naming for `RevlogEntry` lifetime This matches what has been done in `revlog::changelog::ChangelogRevisionData`, and has the advantage of making things clearer when we introduce other, shorter lived lifetimes.
Wed, 29 Mar 2023 20:50:42 +0200 rust-changelog: introducing an intermediate `ChangelogEntry`
Georges Racinet <georges.racinet@octobus.net> [Wed, 29 Mar 2023 20:50:42 +0200] rev 50445
rust-changelog: introducing an intermediate `ChangelogEntry` Before this change, client code needing to extract, e.g, the Node ID and the description from a changeset had no other choice than calling both `entry_for_rev()` and `data_for_rev()`. This duplicates some (limited) computation, and more importantly imposes bad hygiene for client code: at some point of developement, the client code would have to pass over both entry and data in its internal layers, which at some point of development would raise the question whether they are consistent. We introduce the intermediate `ChangelogEntry` from which both conversion to the generic `RevlogEntry` and extraction of `ChangelogRevisionData` are possible. It might grow some convenience methods in the future. We keep the `data_for_rev()` method of `Changelog` for compatibility, pointing users at the more powerful alternative.
Wed, 29 Mar 2023 21:03:39 +0200 rust-changelog: added a test for `NULL_REVISION` special case
Georges Racinet <georges.racinet@octobus.net> [Wed, 29 Mar 2023 21:03:39 +0200] rev 50444
rust-changelog: added a test for `NULL_REVISION` special case The result is due to `Revlog.get_rev_data()` returning an empty byte string for `NULL_REVISION`, followed by special case for emtpty byte strings in `ChangelogRevisionData::new()`.
Wed, 29 Mar 2023 20:24:58 +0200 rust-changelog: made doc-comments more consistent
Georges Racinet <georges.racinet@octobus.net> [Wed, 29 Mar 2023 20:24:58 +0200] rev 50443
rust-changelog: made doc-comments more consistent The most important is the one about `data_for_rev`, that looked like a copy-paste leftover (got me confused first time I read this code, before I actually learned there were both `Entry` and RevisionData`. In the comment for the `struct`, "changelog" was probably more about the format in general (as documented elsewhere) than as an identifier. Some of the "Return something" had "of", half had "for".
Tue, 21 Mar 2023 20:47:30 -0400 extras: re-use Projection from jaraco.collections
Jason R. Coombs <jaraco@jaraco.com> [Tue, 21 Mar 2023 20:47:30 -0400] rev 50442
extras: re-use Projection from jaraco.collections
Tue, 21 Mar 2023 17:21:45 -0400 extras: expose 'retained_extras' for extensions to extend
Jason R. Coombs <jaraco@jaraco.com> [Tue, 21 Mar 2023 17:21:45 -0400] rev 50441
extras: expose 'retained_extras' for extensions to extend
Tue, 21 Mar 2023 17:17:09 -0400 extras: extract function for projecting names from a gettable object
Jason R. Coombs <jaraco@jaraco.com> [Tue, 21 Mar 2023 17:17:09 -0400] rev 50440
extras: extract function for projecting names from a gettable object
Sat, 25 Mar 2023 23:02:33 +0100 hgweb: add "children" into the JSON template for a changeset
Manuel Jacob <me@manueljacob.de> [Sat, 25 Mar 2023 23:02:33 +0100] rev 50439
hgweb: add "children" into the JSON template for a changeset The children are shown in the HTML templates, so I don’t see a reason against including them in the JSON template as well.
Fri, 24 Mar 2023 10:43:47 +0100 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Fri, 24 Mar 2023 10:43:47 +0100] rev 50438
branching: merge stable into default
Wed, 22 Mar 2023 15:19:02 +0100 help: fix formatting for http config section
Julien Cristau <jcristau@mozilla.com> [Wed, 22 Mar 2023 15:19:02 +0100] rev 50437
help: fix formatting for http config section
Mon, 20 Mar 2023 23:16:14 +0100 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Mon, 20 Mar 2023 23:16:14 +0100] rev 50436
branching: merge stable into default
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
Tue, 28 Feb 2023 15:00:26 -0500 revlog: add an exception hint when processing LFS flags without the extension
Matt Harbison <matt_harbison@yahoo.com> [Tue, 28 Feb 2023 15:00:26 -0500] rev 50419
revlog: add an exception hint when processing LFS flags without the extension It would be even better if this was either detected sooner, or the transaction completed (especially since the read/write processors aren't needed for the exchange). But this makes it easier for the user to resolve until that can be figured out.
Mon, 27 Feb 2023 23:12:23 -0500 tests: drop py36 conditionals in test-bad-extension.t
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 23:12:23 -0500] rev 50418
tests: drop py36 conditionals in test-bad-extension.t Since this is a `>=` test, it's really conditionalizing py27 content, which isn't a thing anymore.
Mon, 27 Feb 2023 23:11:05 -0500 tests: drop py36 conditionals in test-hook.t
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 23:11:05 -0500] rev 50417
tests: drop py36 conditionals in test-hook.t Since this is a `>=` test, it's really conditionalizing py27 content, which isn't a thing anymore.
Mon, 27 Feb 2023 22:51:18 -0500 tests: drop py36 conditionals in test-http-bad-server.t
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 22:51:18 -0500] rev 50416
tests: drop py36 conditionals in test-http-bad-server.t Since this is a `>=` test, it's really conditionalizing py27 content, which isn't a thing anymore.
Mon, 27 Feb 2023 23:04:09 -0500 configitems: enable changegroup3 by default (unless using infinitepush)
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 23:04:09 -0500] rev 50415
configitems: enable changegroup3 by default (unless using infinitepush) The LFS extension requires this, and if it isn't enabled on the client (or the LFS extension isn't loaded), a web client gets a 500 instead of a sensible error message. Now it gets a different (client) error, but maybe it can be handled more gracefully. c0f11347b107 indicates that treemanifest repos have this issue too. 29cfc474c5fd mentions gating this behind `experimental` so that the format could change, but that was 7 years ago and we now have an experimental `changegroup4` as well. We can keep this as a config for the next cycle in case someone runs into an unexpected problem, and then jettison it if the infinitepush bundle name changes are either acceptable as-is or can be created differently.
Mon, 27 Feb 2023 19:59:55 -0500 infinitepush: opt out of changegroup3 unless explicitly configured
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 19:59:55 -0500] rev 50414
infinitepush: opt out of changegroup3 unless explicitly configured This is currently a no-op, as changegroup3 is disabled by default. But when it is enabled, it changes the hash names of the bundle files. As I don't use this extension, I have no idea if that's OK or not. So keep the current default behavior until we can get more info from actual users, while allowing them to opt-in for testing purposes.
Wed, 01 Mar 2023 13:31:17 -0500 statichttprepo: unbyteify several IOError messages
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 13:31:17 -0500] rev 50413
statichttprepo: unbyteify several IOError messages Builtin errors generally want str messages.
Wed, 01 Mar 2023 13:11:51 -0500 statichttprepo: fix the vfs.join() method to match the base class definition
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 13:11:51 -0500] rev 50412
statichttprepo: fix the vfs.join() method to match the base class definition Flagged by PyCharm. The superclass implementation raised NotImplementedError.
Wed, 01 Mar 2023 12:38:36 -0500 mail: unbyteify the SMTPException message
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 12:38:36 -0500] rev 50411
mail: unbyteify the SMTPException message This is a subclass of OSError, which wants str instead of bytes.
Wed, 01 Mar 2023 12:37:05 -0500 mail: add a missing argument to properly override starttls
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 12:37:05 -0500] rev 50410
mail: add a missing argument to properly override starttls I didn't look into when this changed, but it was flagged by PyCharm.
Wed, 01 Mar 2023 11:53:31 -0500 crecord: switch a curses argument to bool to appease type checkers
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 11:53:31 -0500] rev 50409
crecord: switch a curses argument to bool to appease type checkers
Wed, 01 Mar 2023 11:45:57 -0500 grep: avoid reassigning byteskwargs to strkwargs
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 11:45:57 -0500] rev 50408
grep: avoid reassigning byteskwargs to strkwargs PyCharm flagged each of these `get()` calls with bytes. We still pass the bytes form to the formatter to avoid changing the API, until all callers can be changed.
Wed, 01 Mar 2023 11:33:57 -0500 cat: drop unnecessary internal roundtrip of kwargs
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 11:33:57 -0500] rev 50407
cat: drop unnecessary internal roundtrip of kwargs PyCharm seems to stick with the type at the initial assignment, so it flagged the `get()` with a bytes key since the method argument has str keys. It wasn't a bug, but then the bytes form is otherwise unused, and converted back to str.
Thu, 22 Jun 2023 11:18:47 +0200 Added signature for changeset 271a4ab29605 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 11:18:47 +0200] rev 50406
Added signature for changeset 271a4ab29605
Thu, 22 Jun 2023 11:18:27 +0200 Added tag 6.4.5 for changeset 271a4ab29605 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 11:18:27 +0200] rev 50405
Added tag 6.4.5 for changeset 271a4ab29605
Thu, 22 Jun 2023 11:17:40 +0200 relnotes: add 6.4.5 stable 6.4.5
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 11:17:40 +0200] rev 50404
relnotes: add 6.4.5
Sat, 17 Jun 2023 23:47:31 +0200 path: use the next `display` argument to deal with boolean stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2023 23:47:31 +0200] rev 50403
path: use the next `display` argument to deal with boolean We have a generic mechanism that we can now use for the special case now.
Thu, 15 Jun 2023 09:51:29 +0200 path: display proper user facing value for pulled-delta-reuse-policy stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2023 09:51:29 +0200] rev 50402
path: display proper user facing value for pulled-delta-reuse-policy The integer was not what the user expect nor what could be provided as a config value.
Thu, 15 Jun 2023 09:50:46 +0200 paths: add an argument to format the suboption display stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2023 09:50:46 +0200] rev 50401
paths: add an argument to format the suboption display We will use it in the next function to the delta policy display. It could also be use to deal with the other special case in the command code, but that is unnecessary churn for stable so that part will go on default.
Fri, 09 Jun 2023 14:32:09 +0100 ui: fix crash in `hg paths` when pulled-delta-reuse-policy is in use stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 09 Jun 2023 14:32:09 +0100] rev 50400
ui: fix crash in `hg paths` when pulled-delta-reuse-policy is in use The crash is a result of [value] being an int, but being used as a bytestring.
Fri, 09 Jun 2023 14:31:40 +0100 ui: add a test demonstrating a crash in `hg paths` stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 09 Jun 2023 14:31:40 +0100] rev 50399
ui: add a test demonstrating a crash in `hg paths`
Sat, 17 Jun 2023 04:05:53 +0200 re2: fix reporting of availability in `hg debuginstall` stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2023 04:05:53 +0200] rev 50398
re2: fix reporting of availability in `hg debuginstall` We add and use an official API to check is re2 is available. This prevent the bug previously in place were debuginstall was considering confusing `None` (i.e. non-initialized) and `False` (i.e. unavailable).
Sat, 17 Jun 2023 04:05:18 +0200 re: make _checkre2 a static method stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2023 04:05:18 +0200] rev 50397
re: make _checkre2 a static method There is no need to it to be a method, so we make it at least a static method to make it easier to call.
Sat, 17 Jun 2023 04:02:25 +0200 re2: exit `_checkre2` early if calling it is useless stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2023 04:02:25 +0200] rev 50396
re2: exit `_checkre2` early if calling it is useless If we already know if re2 is supported there is no need to run the check again. Stricly speaking we don't call it twice, but this seems a simple enough safeguard to include in this series.
Mon, 12 Jun 2023 10:50:00 +0200 test-dirstate-version-fallback: future-proof the test for a different default stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 12 Jun 2023 10:50:00 +0200] rev 50395
test-dirstate-version-fallback: future-proof the test for a different default Dirstate-v2 will become the default at some point, which would cause this test to fail. Let's save someone else the headache later.
Thu, 08 Jun 2023 17:02:04 +0200 Added signature for changeset da372c745e0f stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 08 Jun 2023 17:02:04 +0200] rev 50394
Added signature for changeset da372c745e0f
Thu, 08 Jun 2023 17:02:00 +0200 Added tag 6.4.4 for changeset da372c745e0f stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 08 Jun 2023 17:02:00 +0200] rev 50393
Added tag 6.4.4 for changeset da372c745e0f
Thu, 08 Jun 2023 17:01:29 +0200 relnotes: add 6.4.4 stable 6.4.4
Raphaël Gomès <rgomes@octobus.net> [Thu, 08 Jun 2023 17:01:29 +0200] rev 50392
relnotes: add 6.4.4
Thu, 08 Jun 2023 14:28:21 +0200 revlog: avoid possible collision between directory and temporary index stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 14:28:21 +0200] rev 50391
revlog: avoid possible collision between directory and temporary index Since 6.4, we create a temporary index file to write the split data without overwriting the inline version too early. However, the store encoding does not prevent these new `.i.s` file to collide with a directory with the same name. While the odds for such a collision to happens are fairly low, the collision would prevent Mercurial from working. The store encoding have a mitigation solution in place to prevent such collisions from happening for `.i` and `.d` files, but not for other extensions. We cannot update this encoding scheme to solve the issue since it would diverge from older version of Mercurial. Instead, we create an alternative directory tree dedicated to such files. The use of the `.i` extension combined with store encoding will prevent collisions there.
Thu, 08 Jun 2023 11:08:19 +0200 revlog: move the computation of the split_index path in a property stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 11:08:19 +0200] rev 50390
revlog: move the computation of the split_index path in a property This is about to become more complex, so we gather the logic in a single place.
Mon, 05 Jun 2023 16:43:27 +0200 rust-dirstate: fall back to v1 if reading v2 failed stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 05 Jun 2023 16:43:27 +0200] rev 50389
rust-dirstate: fall back to v1 if reading v2 failed This will help us not fail when a v1 dirstate is present on disk while a v2 was expected (which could happen with a racy/interrupted upgrade).
Mon, 05 Jun 2023 17:29:52 +0200 dirstate: add test showing dirstate version mismatch causes an error stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 05 Jun 2023 17:29:52 +0200] rev 50388
dirstate: add test showing dirstate version mismatch causes an error We should fall back to trying dirstate v1 when v2 fails to read.
Mon, 05 Jun 2023 16:30:25 +0200 rust-dirstate: rename `has_dirstate_v2` to `use_dirstate_v2` stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 05 Jun 2023 16:30:25 +0200] rev 50387
rust-dirstate: rename `has_dirstate_v2` to `use_dirstate_v2` It is closer to the right semantics. I added a docstring to better explain the reasonning. In the next patch(es), I will address the underlying issue of finding the "wrong" version of the dirstate on disk.
Mon, 05 Jun 2023 03:11:26 +0200 delta-find: fix pulled-delta-reuse-policy=forced behavior stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jun 2023 03:11:26 +0200] rev 50386
delta-find: fix pulled-delta-reuse-policy=forced behavior The code that select delta still has too many oportunity to discard the delta is has been forcibly asked to reuse. However is is fairly easy to use a dedicated fastpath for this case. So we do so. Cleaning other code that tries to enforce that policy will be done on default.
Thu, 08 Jun 2023 03:49:44 +0200 delta-find: display more information about the search in some case stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 03:49:44 +0200] rev 50385
delta-find: display more information about the search in some case This will be useful to access the effect of the delta reuse policy.
Thu, 08 Jun 2023 03:05:10 +0200 deltafind: issue debug information when we fast-path rivial case too stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 03:05:10 +0200] rev 50384
deltafind: issue debug information when we fast-path rivial case too More debug options never hurts.
Thu, 08 Jun 2023 03:11:51 +0200 delta-find: gather the condition to blindly use a full snapshot together stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 03:11:51 +0200] rev 50383
delta-find: gather the condition to blindly use a full snapshot together We are about to make the `if` body bigger, so having only one of them is simpler/
Thu, 08 Jun 2023 02:49:10 +0200 delta-find: initialize the debug information much sooner (when possible) stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 02:49:10 +0200] rev 50382
delta-find: initialize the debug information much sooner (when possible) This help us to record debug information in alternative path.
Thu, 08 Jun 2023 02:42:28 +0200 delta-find: fix `parents` round detection stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 02:42:28 +0200] rev 50381
delta-find: fix `parents` round detection We should compare integer with integer, instead of bytes (node).
Thu, 08 Jun 2023 02:35:03 +0200 delta-find: intrduce a `_one_dbg_data` method stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 02:35:03 +0200] rev 50380
delta-find: intrduce a `_one_dbg_data` method This helps with the initialisation of the expected debug information.
Thu, 08 Jun 2023 01:52:35 +0200 delta-find: move final debug processing in a `_dbg_process_data` method stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 01:52:35 +0200] rev 50379
delta-find: move final debug processing in a `_dbg_process_data` method This will help us making sure we can call the necessary debugging code in alternative codepath.
Thu, 08 Jun 2023 01:19:01 +0200 delta-fine: use the `_debug_search` attribute directly stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 01:19:01 +0200] rev 50378
delta-fine: use the `_debug_search` attribute directly By adjusting the value at creation time, we can avoid the need to use and intermediate variable.
Thu, 08 Jun 2023 01:11:47 +0200 delta-find: move the `gather_debug` logic in a property stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 01:11:47 +0200] rev 50377
delta-find: move the `gather_debug` logic in a property This will make it simpler to get be reused in multiple places.
Thu, 08 Jun 2023 01:07:00 +0200 tests: check `pulled-delta-reuse-policy=forced` without general delta stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2023 01:07:00 +0200] rev 50376
tests: check `pulled-delta-reuse-policy=forced` without general delta If general delta is not available, the amount of delta we can reuse at all will be more limited. We check that application still work and does not corrupt the repository.
Tue, 25 Apr 2023 15:28:40 +0200 bundles: clarify streaming v2 bundle usage stable
Mathias De Mare <mathias.de_mare@nokia.com> [Tue, 25 Apr 2023 15:28:40 +0200] rev 50375
bundles: clarify streaming v2 bundle usage This seems useful to clarify through the documentation (we were still using debugcreatestreamclonebundle, even though 'hg bundle' is already an option...).
Mon, 05 Jun 2023 11:07:08 +0200 revlog: fix a bug in revlog splitting stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 05 Jun 2023 11:07:08 +0200] rev 50374
revlog: fix a bug in revlog splitting Specifically, if the .i.s files are not added to the transaction, then a follow-up modification of such a file records it into transaction as non-empty, which is incorrect.
Thu, 01 Jun 2023 22:32:21 +0100 test: make test-contrib-perf.t more robust stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2023 22:32:21 +0100] rev 50373
test: make test-contrib-perf.t more robust Some code path are far too fast now. We raise de number to make sure the run keep to that floor.
Wed, 31 May 2023 22:36:50 +0200 doc: format argument for date uses strftime format string (issue6818) stable
Joerg Sonnenberger <joerg@bec.de> [Wed, 31 May 2023 22:36:50 +0200] rev 50372
doc: format argument for date uses strftime format string (issue6818)
Thu, 20 Apr 2023 11:23:45 +0200 clonebundles: filter out invalid schemes instead of failing on them stable
Mathias De Mare <mathias.de_mare@nokia.com> [Thu, 20 Apr 2023 11:23:45 +0200] rev 50371
clonebundles: filter out invalid schemes instead of failing on them Previously, an invalid clonebundle scheme would result in a failed clone. By specifying a list of schemes we support, we can make sure adding a new scheme (like the one for inline clonebundles) does not result in clones failing for older clients.
Thu, 20 Apr 2023 10:48:12 +0200 clonebundles: demonstrate bad behaviour when unknown scheme is present stable
Mathias De Mare <mathias.de_mare@nokia.com> [Thu, 20 Apr 2023 10:48:12 +0200] rev 50370
clonebundles: demonstrate bad behaviour when unknown scheme is present
Thu, 04 May 2023 14:17:28 +0200 Added signature for changeset fc445f8abcf9 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 May 2023 14:17:28 +0200] rev 50369
Added signature for changeset fc445f8abcf9
Thu, 04 May 2023 14:17:19 +0200 Added tag 6.4.3 for changeset fc445f8abcf9 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 May 2023 14:17:19 +0200] rev 50368
Added tag 6.4.3 for changeset fc445f8abcf9
Thu, 04 May 2023 14:16:07 +0200 relnotes: add 6.4.3 stable 6.4.3
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 May 2023 14:16:07 +0200] rev 50367
relnotes: add 6.4.3
Wed, 03 May 2023 00:16:38 +0200 backup: fix issue when the backup end up in a different directory stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2023 00:16:38 +0200] rev 50366
backup: fix issue when the backup end up in a different directory Because of store encoding, we might end up with the backup in a different directory than the initial copy (for example if the backup path make it cross the 120 char limit). This can create crash, especially since 6.4 where backup are used during revlog split. Making sure the directory exists fixes these crash We added a test covering this case. Strictly speaking, this has always been broken, however the new code in 6.4 triggers it more easily.
Wed, 03 May 2023 00:12:34 +0200 vfsproxy: inherit the `createmode` attribute too stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2023 00:12:34 +0200] rev 50365
vfsproxy: inherit the `createmode` attribute too It is an important part of the API when creating directory. We will need it in the next changeset.
Tue, 02 May 2023 21:43:45 +0200 revlog: test more complex file pattern for revlog split stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 May 2023 21:43:45 +0200] rev 50364
revlog: test more complex file pattern for revlog split There have been a report of failure while splitting revlog. The file name involved was important. The pattern involved here are not problematic, but it help to setup the machinery to test multiple files, the actual fix and problematic file will arrive in a later changeset.
Tue, 02 May 2023 15:40:13 +0200 repo-upgrade: write new requirement before upgrading the dirstate stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 02 May 2023 15:40:13 +0200] rev 50363
repo-upgrade: write new requirement before upgrading the dirstate This will prevent a small race condition where another hg process still believes the repo is dirstate-v1 during the upgrade process. This is good to have, but it is not a proper fix for the underlying problem. There is code that assumes a requirement means a usage, e.g. having the `generaldelta` requirement would imply *all* revlogs to use general delta, but it's not true, it simply means that the repository advertises to the client it needs to understand `generaldelta` in order to read the repo. In the case of the dirstate, having the requirement *technically* should always be the same as using dirstate-v2, since there is only one dirstate and requirements should be as minimal as possible. However, we should not assume this and make the code more robust in a future patch (series).
Wed, 26 Apr 2023 15:30:35 -0400 rhg: correctly relativize copy source path stable
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Wed, 26 Apr 2023 15:30:35 -0400] rev 50362
rhg: correctly relativize copy source path
Wed, 26 Apr 2023 15:31:02 -0400 rhg: don't print copy source when --no-status is passed stable
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Wed, 26 Apr 2023 15:31:02 -0400] rev 50361
rhg: don't print copy source when --no-status is passed
Wed, 26 Apr 2023 16:18:12 -0400 tests: add test for status copy source formatting stable
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Wed, 26 Apr 2023 16:18:12 -0400] rev 50360
tests: add test for status copy source formatting
Tue, 25 Apr 2023 17:49:35 -0400 fix: highlight the required configuration and behavior of the fixer tools stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 25 Apr 2023 17:49:35 -0400] rev 50359
fix: highlight the required configuration and behavior of the fixer tools The problem is that `hg help fix` didn't mention *how* to configure the tools, and while I knew that `{rootpath}` existed in the configuration, I missed that the tools require reading content from stdin. (I configured `gofmt` to use `{rootpath}`, and that had the effect of squashing all changes in a file at `.` into the first commit and emptying that content from its descendants.) Basically all this does is put a pointer in the default (command level) help to the extension level help that mentions the configuration, and moves the extension level help that documents reading from stdin and writing to stdout to the top to give it more prominence. The last sentence is adjusted a bit to reflect the new location.
Tue, 18 Apr 2023 15:26:55 +0200 debug-delta: add minimal documentation for `devel.bundle-delta` option stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Apr 2023 15:26:55 +0200] rev 50358
debug-delta: add minimal documentation for `devel.bundle-delta` option So the next person won't have to grep the code to know what it is doing.
Wed, 19 Apr 2023 16:37:11 +0200 delta-find: simply code that is now never invoqued without general delta stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Apr 2023 16:37:11 +0200] rev 50357
delta-find: simply code that is now never invoqued without general delta Finish early in on-general delta case mean a lot of code can assume that general delta is not enabled.
Tue, 18 Apr 2023 17:17:31 +0200 delta-find: add a simple safeguard to prevent bad non-general-delta stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Apr 2023 17:17:31 +0200] rev 50356
delta-find: add a simple safeguard to prevent bad non-general-delta This make it easier to catch request to build delta that does not make sense in the general delta world. It seems better to raise a programming error than to corrupt the repository.
Wed, 19 Apr 2023 18:16:19 +0200 delta-find: never do anything fancy when general delta is off stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Apr 2023 18:16:19 +0200] rev 50355
delta-find: never do anything fancy when general delta is off Without general delta, the only option is to do a delta against the previous revision in the revlog, or to do a full snapshot. So no need to dive into the more complicated logic. This prevent Mercurial to misbehave when applying remote deltas when `pulled-delta-reuse-policy` was set to "try-base" or "forced" and would produce and store invalid deltas. We add an associated tests to make sure this scenario is covered by tests. There are more code to cleanup after this, but I what to keep the fixing patch simple.
(0) -30000 -10000 -3000 -1000 -300 -100 -96 +96 +100 +300 +1000 tip