Mon, 13 Mar 2023 14:19:02 +0000 tests: simplify a bit stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 13 Mar 2023 14:19:02 +0000] rev 50295
tests: simplify a bit
Mon, 13 Mar 2023 14:15:34 +0000 dirstate-v2: fix an incorrect handling of readdir errors stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 13 Mar 2023 14:15:34 +0000] rev 50294
dirstate-v2: fix an incorrect handling of readdir errors Make sure not to cache the results of a failed readdir call.
Fri, 10 Mar 2023 18:20:50 +0000 tests: demonstrate a bug in dirstate-v2 handling of errors stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 10 Mar 2023 18:20:50 +0000] rev 50293
tests: demonstrate a bug in dirstate-v2 handling of errors
Fri, 10 Mar 2023 18:20:19 +0000 tests: add a rewriting step to detect EACCES errors stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 10 Mar 2023 18:20:19 +0000] rev 50292
tests: add a rewriting step to detect EACCES errors
Tue, 07 Mar 2023 03:42:40 +0100 undo-files: cleanup legacy files when applicable stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Mar 2023 03:42:40 +0100] rev 50291
undo-files: cleanup legacy files when applicable The "journal" code is much more compact in 6.4, and so is the "undo" files as a result. However the previous version were much noisier, so let us cleanup undo files from older version too.
Mon, 06 Mar 2023 22:16:43 +0100 undo-files: clean existing files up before writing new one stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 22:16:43 +0100] rev 50290
undo-files: clean existing files up before writing new one the in the initial design of journal/undo interaction, ages ago, new file always overwrote previous files. This is no longer the case for a long while, so it is time to properly clean things up before writing new ones. Otherwise, inconsistent "undo" state might exist on disk, leading `hg rollback` to misbehave (more that intended).
Tue, 07 Mar 2023 03:31:21 +0100 undo-files: make the undo-prefix configurable in `cleanup_undo_files` stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Mar 2023 03:31:21 +0100] rev 50289
undo-files: make the undo-prefix configurable in `cleanup_undo_files` The transaction is configuration undo prefix, so we "need" it too.
Mon, 06 Mar 2023 22:16:28 +0100 undo-files: no longer pass the `repo` to `cleanup_undo_files` stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 22:16:28 +0100] rev 50288
undo-files: no longer pass the `repo` to `cleanup_undo_files` As foretold in the previous changesets, we no longer need a full repository object here.
Mon, 06 Mar 2023 20:16:17 +0100 undo-files: relies on a explicit list of possible undo files stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 20:16:17 +0100] rev 50287
undo-files: relies on a explicit list of possible undo files Instead of infering the list of undo files from the `_journalfiles` method on `localrepository`, we explicitly have the list of file in a constant next to the cleanup code. In practice this does not change much as `_journalfiles` is already returning the same "static" list and no internal or extensions extensions seems to actually wrap that. In addition, that list is not "too short" for cleanup, in case we need to cleanup undo files from older version of Mercurial that used to use more of them. this will be dealt with in a later changesets. This change is a step toward our goal to use the `cleanup_undo_files` within the transaction. The transaction has no reference to the `repo` object, so we need to move toward `cleanup_undo_files` not having one either.
Mon, 06 Mar 2023 21:03:45 +0100 undo-files: move the undo cleanup code in the transaction module stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 21:03:45 +0100] rev 50286
undo-files: move the undo cleanup code in the transaction module Now that undo creation is gathered in the transaction module, let us move the code cleaning them up there too. This will be useful to better clean previous undo files up before creating new ones.
Mon, 06 Mar 2023 19:39:35 +0100 undo-files: drop the old undo rename logic stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 19:39:35 +0100] rev 50285
undo-files: drop the old undo rename logic It is no longer necessary I am not changing the transaction.__init__ signature since we are on stable right now.
Mon, 06 Mar 2023 19:22:34 +0100 undo-files: have the transaction directly tracks and manages journal rename stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 19:22:34 +0100] rev 50284
undo-files: have the transaction directly tracks and manages journal rename This is much simpler this way.
Mon, 06 Mar 2023 19:19:27 +0100 undo-files: add a undoname closure to the _write_undo method stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 19:19:27 +0100] rev 50283
undo-files: add a undoname closure to the _write_undo method We will also needs it when the transaction will take care of the other journal files, which is soon™.
Mon, 06 Mar 2023 13:31:04 +0100 undo-files: cleanup backup when cleaning undos stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 13:31:04 +0100] rev 50282
undo-files: cleanup backup when cleaning undos Previously, the backups were left behind, by operation cleaning the undo's like strip, narrow and stream clone. The remaining elevant in the room is the transaction itself, who does not properly cleanup undo backup before copying the new ones.
Mon, 06 Mar 2023 13:30:41 +0100 undo-files: factor the vfs map in a repository property stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 13:30:41 +0100] rev 50281
undo-files: factor the vfs map in a repository property We define it in multiple locations and inconsistencies are appearing. So we now have a single definition point.
Mon, 06 Mar 2023 13:22:47 +0100 undo-files: add a utility function to read the backup-files definition stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 13:22:47 +0100] rev 50280
undo-files: add a utility function to read the backup-files definition We will need it in multiple places. so lets factor the logic around.
Mon, 06 Mar 2023 13:05:43 +0100 undo-files: use the cleanup function in streamclone stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 13:05:43 +0100] rev 50279
undo-files: use the cleanup function in streamclone Lets use the same code, so that we can fix things only once.
Mon, 06 Mar 2023 13:05:08 +0100 undo-files: also remove the undo.backupfiles stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 13:05:08 +0100] rev 50278
undo-files: also remove the undo.backupfiles The undo.backupfiles is dealt is directly managed by the transaction instead of going through the `localrepo.undofiles`. We start doing minimal management for it before using `cleanup_undo_files` on more situation. Proper handling of it is an intermediate goal of this series.
Mon, 06 Mar 2023 13:02:16 +0100 undo-files: use the cleanup function in narrow stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 13:02:16 +0100] rev 50277
undo-files: use the cleanup function in narrow Lets use the same code, so that we can fix things only once.
Mon, 06 Mar 2023 12:57:46 +0100 undo-files: extract the cleanup code from strip in a function stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Mar 2023 12:57:46 +0100] rev 50276
undo-files: extract the cleanup code from strip in a function This logic is duplicated in multiple places and it missing some important parts. So lets start dealing with the duplication first.
Tue, 07 Mar 2023 23:38:14 -0500 run-tests: fix a crash when using the coverage options stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 07 Mar 2023 23:38:14 -0500] rev 50275
run-tests: fix a crash when using the coverage options 35bf7f23b84c attempted to transition away from `distutils`, but the `packaging` code lacks `StrictVersion`. I have no idea when `packaging.version` became available, but I have it in python 3.6, so that should be good enough. For some reason, the import checker thinks this is a local import, and needs help to decide otherwise. Alternately we could ditch the version check entirely, because `coverage` is currently at 7.2.1, and the original check was added back in 2010.
Tue, 07 Mar 2023 13:39:31 +0100 rust: fix building on macOS (issue6801) stable
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Tue, 07 Mar 2023 13:39:31 +0100] rev 50274
rust: fix building on macOS (issue6801) The VFS change is copied over from Cargo, and likely to apply to other platforms as well. The dirstate change is essentially a replay of 440972d2175d, which was reverted in e98fd81bb151, part of !383, to silence some clippy warnings.
Wed, 08 Mar 2023 00:46:53 +0100 tests: fix timeout adjustement in delaypush.py stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Mar 2023 00:46:53 +0100] rev 50273
tests: fix timeout adjustement in delaypush.py Doing integer arithmetic with string is bound to fail.
Thu, 02 Mar 2023 23:45:30 +0100 relnotes: add 6.4 and empty next stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 02 Mar 2023 23:45:30 +0100] rev 50272
relnotes: add 6.4 and empty next
Thu, 02 Mar 2023 23:30:04 +0100 Added signature for changeset 05de4896508e stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 02 Mar 2023 23:30:04 +0100] rev 50271
Added signature for changeset 05de4896508e
Thu, 02 Mar 2023 23:29:52 +0100 Added tag 6.4rc0 for changeset 05de4896508e stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 02 Mar 2023 23:29:52 +0100] rev 50270
Added tag 6.4rc0 for changeset 05de4896508e
Thu, 02 Mar 2023 22:45:44 +0100 branching: merge default into stable stable 6.4rc0
Raphaël Gomès <rgomes@octobus.net> [Thu, 02 Mar 2023 22:45:44 +0100] rev 50269
branching: merge default into stable
Thu, 02 Mar 2023 15:34:45 +0100 transaction: drive the aberratant branch special case away
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 15:34:45 +0100] rev 50268
transaction: drive the aberratant branch special case away shoo shoo shoo shoo. Happy to remove this awful special case (that I introduced myself last week…)
Thu, 02 Mar 2023 15:33:04 +0100 transaction: remove the `branch` backup for transaction
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 15:33:04 +0100] rev 50267
transaction: remove the `branch` backup for transaction We can now back it up at the end of the transaction as we do for the rest of the dirstate.
Thu, 02 Mar 2023 11:54:29 +0100 dirstate: deprecate calling `setbranch` without a transaction parameter
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 11:54:29 +0100] rev 50266
dirstate: deprecate calling `setbranch` without a transaction parameter The new way is now enforced.
Thu, 02 Mar 2023 14:46:37 +0100 branch: pass current transaction when writing branch for transaction backup
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:46:37 +0100] rev 50265
branch: pass current transaction when writing branch for transaction backup This will requires more change soon (as we can simplify this backup). This will be done in later changesets.
Thu, 02 Mar 2023 14:46:51 +0100 branch: pass current transaction when writing branch in shelve
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:46:51 +0100] rev 50264
branch: pass current transaction when writing branch in shelve
Thu, 02 Mar 2023 14:45:39 +0100 branch: pass current transaction when writing branch in import
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:45:39 +0100] rev 50263
branch: pass current transaction when writing branch in import
Thu, 02 Mar 2023 14:45:29 +0100 branch: pass current transaction when writing branch in backout command
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:45:29 +0100] rev 50262
branch: pass current transaction when writing branch in backout command
Thu, 02 Mar 2023 14:45:21 +0100 branch: pass current transaction when writing branch in branch command
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:45:21 +0100] rev 50261
branch: pass current transaction when writing branch in branch command
Thu, 02 Mar 2023 14:44:43 +0100 branch: pass current transaction when writing branch in merge
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:44:43 +0100] rev 50260
branch: pass current transaction when writing branch in merge
Thu, 02 Mar 2023 14:44:33 +0100 branch: pass current transaction when writing branch in rebase
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:44:33 +0100] rev 50259
branch: pass current transaction when writing branch in rebase
Thu, 02 Mar 2023 14:44:26 +0100 branch: pass current transaction when writing branch in keyword
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:44:26 +0100] rev 50258
branch: pass current transaction when writing branch in keyword
Thu, 02 Mar 2023 14:44:17 +0100 branch: pass current transaction when writing branch in histedit
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:44:17 +0100] rev 50257
branch: pass current transaction when writing branch in histedit
Thu, 02 Mar 2023 11:47:18 +0100 dirstate: write the `branch` as part of the transaction if any
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 11:47:18 +0100] rev 50256
dirstate: write the `branch` as part of the transaction if any Bypassing the transaction means we could get out of sync with the dirstatemap content. The branch is stil written right away if no transaction is around, but at least it no longer bypass the transaction. Actual caller of this still need to be updated.
Thu, 02 Mar 2023 11:46:51 +0100 dirstate: factor the transaction abort logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 11:46:51 +0100] rev 50255
dirstate: factor the transaction abort logic We will need it in more occasion if the branch is to be written as part of the transaction.
Thu, 02 Mar 2023 14:50:17 +0100 dirstate: use a context manager to handle the file used for writing the branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 14:50:17 +0100] rev 50254
dirstate: use a context manager to handle the file used for writing the branch This is more modern.
Thu, 02 Mar 2023 11:54:21 +0100 style: rewrap `ui.deprecwarn` declaration
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 11:54:21 +0100] rev 50253
style: rewrap `ui.deprecwarn` declaration This get easier to read, especially with the type annotation.
Thu, 02 Mar 2023 19:02:52 +0100 branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 19:02:52 +0100] rev 50252
branching: merge stable into default The clippy god had to be appeased on some aspect.
Thu, 02 Mar 2023 04:16:47 +0100 narrow: read pending file when applicable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 04:16:47 +0100] rev 50251
narrow: read pending file when applicable Now that this is part of the transaction, this is necessary to make sure we read the right data in hooks (if any).
Tue, 28 Feb 2023 11:44:52 -0500 hghave: drop py27 and py35 support
Matt Harbison <matt_harbison@yahoo.com> [Tue, 28 Feb 2023 11:44:52 -0500] rev 50250
hghave: drop py27 and py35 support These versions of python are no longer supported by Mercurial.
Tue, 28 Feb 2023 11:41:50 -0500 hghave: byteify a path passed to a core API
Matt Harbison <matt_harbison@yahoo.com> [Tue, 28 Feb 2023 11:41:50 -0500] rev 50249
hghave: byteify a path passed to a core API It looks like this predicate isn't used at all(?)
Mon, 27 Feb 2023 18:24:29 +0000 rust: box ConfigValueParseError to avoid large result types
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 27 Feb 2023 18:24:29 +0000] rev 50248
rust: box ConfigValueParseError to avoid large result types clippy emits a warning that all the Result types are way too large because of HgError includes ConfigValueParseError as one of the variants, so its size is 136 bytes. By boxing ConfigValueParseError we're hopefully making everything faster "for free".
Wed, 22 Feb 2023 02:08:11 +0100 dirstate: drop `identity` from the public API
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 02:08:11 +0100] rev 50247
dirstate: drop `identity` from the public API We no longer needs it.
Thu, 23 Feb 2023 15:32:27 +0100 delta-find: rename `delta-reuse-policy` to `pulled-delta-reuse-policy`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 15:32:27 +0100] rev 50246
delta-find: rename `delta-reuse-policy` to `pulled-delta-reuse-policy` This make it clearer which type of delta we are talking about.
Thu, 23 Feb 2023 15:27:42 +0100 config-item: declare undeclared path suboption
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 15:27:42 +0100] rev 50245
config-item: declare undeclared path suboption This should prevent issue like the previous commit.
Thu, 23 Feb 2023 15:26:43 +0100 delta-find: declare the "paths..*:delta-reuse-policy option
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 15:26:43 +0100] rev 50244
delta-find: declare the "paths..*:delta-reuse-policy option While looking into renaming the option I realized it was not declared.
Thu, 23 Feb 2023 15:16:40 +0100 delta-find: adjust the default candidate group chunk size
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 15:16:40 +0100] rev 50243
delta-find: adjust the default candidate group chunk size We move from 10 to 20 as the default as some usage in the wild saw a small degradation in storage quality when using `10`.
Tue, 07 Feb 2023 10:27:21 +0100 record: extract a closure to the module level
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Feb 2023 10:27:21 +0100] rev 50242
record: extract a closure to the module level This clean up is almost as gratuituous as this closure was.
Tue, 07 Feb 2023 10:16:25 +0100 record: drop a now useless overlay that grab the lock
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Feb 2023 10:16:25 +0100] rev 50241
record: drop a now useless overlay that grab the lock Since 28dfb2df4ab9, commit grab the wlock and the extra layer grabing the lock in record is no longer needed. We clean up the code to make this simpler (and add a small assert for extra security against future change).
Fri, 24 Feb 2023 03:03:54 +0100 bundlerepo: fix string interpolation
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 24 Feb 2023 03:03:54 +0100] rev 50240
bundlerepo: fix string interpolation Matt Harbison is saying we cannot `%s` a type into a byte string and that seems reasonable.
Thu, 23 Feb 2023 23:05:51 +0100 bundlerepo: apply phase data stored in the bundle instead of assuming `draft`
Matt Harbison <matt_harbison@yahoo.com>, Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 23:05:51 +0100] rev 50239
bundlerepo: apply phase data stored in the bundle instead of assuming `draft` The phase information contained in the changegroup part and the explicit `phase-heads` part are now taken in account. Initial changes and test by Matt Harbison, code rework by Pierre-Yves David.
Thu, 23 Feb 2023 19:07:58 +0100 bundlerepo: handle changegroup induced phase movement in the associated method
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 19:07:58 +0100] rev 50238
bundlerepo: handle changegroup induced phase movement in the associated method These movement comes from handling the changegroup part, so we keeps the code grouped. This will be important when handling more part (and more changegroup part in the future) This induce a small code duplication, but it does not looks terrible.
Thu, 23 Feb 2023 19:06:24 +0100 bundlerepo: move most attribute declaration earlier in __init__
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 19:06:24 +0100] rev 50237
bundlerepo: move most attribute declaration earlier in __init__ The expected attribute are clearer this way. The bundle handling code is responsible for setting most of it.
Thu, 23 Feb 2023 19:04:44 +0100 bundlerepo: move the handling of bundl1 in its own method
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 19:04:44 +0100] rev 50236
bundlerepo: move the handling of bundl1 in its own method This should make the overall flow simpler to follow.
Thu, 23 Feb 2023 19:02:01 +0100 bundlerepo: expliclty handing cg part from bundle2
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 19:02:01 +0100] rev 50235
bundlerepo: expliclty handing cg part from bundle2 We will handle other types of parts soon (phase-heads) so we need some cleanup first.
Thu, 23 Feb 2023 15:37:46 +0100 transaction: use the standard transaction mechanism to backup branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 15:37:46 +0100] rev 50234
transaction: use the standard transaction mechanism to backup branch Branch is a bit special : - It currently does not collaborate with the transaction (or any scoping) for writing (this is bad) - It can change without the lock being taken (it is protected by `wlock`) So we rely on the same mechanism as for the backup of the other dirstate file: - we only do a backup if we hold the wlock - we force a backup though the transaction Since "branch" write does not collaborate with the transaction, we cannot back it up "at the last minute" as we do for the dirstate. We have to back it up "upfront". Since we have a backup, the transaction is no longer doing its "quick_abort" and get noisy. Which is quite annoying. To work around this, and to avoid jumping in yet-another-rabbit-hole of "getting branch written properly", I am doing horrible things to the transaction in the meantime. We should be able to get this code go away during the next cycle. In the meantime, I prefer to take this small stop so that we stop abusing the "journal" and "undo" mechanism instead of the proper backup mechanism of the transaction. Also note that this change regress the warning message for the legacy fallback introduced in 2008 when issue902 got fixed in dd5a501cb97f (Mercurial 1.0). I feel like this is fine as issue 902 remains fixed, and this would only affect people deploying a mix of 15 year old Mercurial and modern mercurial, and using branch and rollback extensively.
Thu, 23 Feb 2023 04:53:34 +0100 transaction: no longer explicitly cache bookmarks
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Feb 2023 04:53:34 +0100] rev 50233
transaction: no longer explicitly cache bookmarks The transaction file generation is already dealing with the backup for this. So, no need to duplicate such backup.
Wed, 22 Feb 2023 18:58:02 +0100 transaction: no longer explicitly cache phaseroots
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 18:58:02 +0100] rev 50232
transaction: no longer explicitly cache phaseroots The transaction file generation is already dealing with the backup for this. So, no need to duplicate such backup.
(0) -30000 -10000 -3000 -1000 -300 -100 -64 +64 +100 +300 +1000 tip