Fri, 13 Oct 2023 23:21:46 +0200 censor: accept censored revision during upgrade stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 23:21:46 +0200] rev 51113
censor: accept censored revision during upgrade They can simply be passed by as censored.
Fri, 13 Oct 2023 22:40:10 +0200 censor: show that censored revision prevent repository upgrade stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 22:40:10 +0200] rev 51112
censor: show that censored revision prevent repository upgrade This is not great.
Tue, 31 Oct 2023 22:42:46 -0700 smartset: don't ignore hidden revs when intersecting
Martin von Zweigbergk <martinvonz@google.com> [Tue, 31 Oct 2023 22:42:46 -0700] rev 51111
smartset: don't ignore hidden revs when intersecting This fixes the bug I demonstrated in the previous commit, but I'm not sure at all if it's the right way of doing it.
Tue, 31 Oct 2023 22:33:45 -0700 tests: demonstrate crash in `unstable()` with internal-phase orphans
Martin von Zweigbergk <martinvonz@google.com> [Tue, 31 Oct 2023 22:33:45 -0700] rev 51110
tests: demonstrate crash in `unstable()` with internal-phase orphans
Wed, 18 Oct 2023 14:50:14 +0200 rust-matchers: fix quadratic complexity in `FileMatcher`
Raphaël Gomès <rgomes@octobus.net> [Wed, 18 Oct 2023 14:50:14 +0200] rev 51109
rust-matchers: fix quadratic complexity in `FileMatcher` Concretely, this command: ``` $ echo hg up -r <nodeid>; time hg revert dir1 dir2 -r <othernode> --debug hg up -r <nodeid> real 0m14.690s user 0m14.766s sys 0m5.430s ``` was much slower despite using 16 cores before this change. The approach taken here is the same one used in match.py, in exactmatcher. This changeset was originally written by Valentin Gatien-Baron in a private repository. I have redacted the commit message and did a minor clean up of the code.
Fri, 27 Oct 2023 08:54:41 +0200 revlog: add a small cache of unfiltered chunk
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Oct 2023 08:54:41 +0200] rev 51108
revlog: add a small cache of unfiltered chunk This can provides a massive boost to the reading of multiple revision and the computation of a valid delta chain. This greatly help operation like `hg log --patch`, delta computation (helping pull/unbundle), linkrev adjustment (helping copy tracing). A first round of benchmark for `hg log --patch --limit 1000` shows improvement in the 10-20% range on "small" repository like pypy or mercurial and large improvements (about 33%) for more complex ones like netbeans and mozilla's. These speeds up are consistent with the improvement to `hg pull` (from a server sending poor deltas) I saw benchmarking this last year. Further benchmark will be run during the freeze. I added some configuration in the experimental space to be able to further test the effect of various tuning for now. This feature should fit well in the "usage/resource profile" configuration that we should land next cycle. When it does not provides a benefit the overhead of the cache seem to be around 2%, a small price for the big improvement. In addition I believe we could shave most of this overhead with a more efficent lru implementation.
Fri, 27 Oct 2023 02:57:09 +0200 revlog: minor refactor in the chunk gather process
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Oct 2023 02:57:09 +0200] rev 51107
revlog: minor refactor in the chunk gather process We will introduce some caching in this method in the next changeset, we make some of the most "disruptive" change first as touching this could break (and maybe did during the development process).
Tue, 24 Oct 2023 11:08:49 +0200 changelog-delay: move the delay/divert logic inside the (inner) revlog
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2023 11:08:49 +0200] rev 51106
changelog-delay: move the delay/divert logic inside the (inner) revlog Instead of hacking throught the vfs/opener, we implement the delay/divert logic inside the `_InnerRevlog` and `randomaccessfile` object. This will allow to an alternative implementation of the `_InnerRevlog` that does not need to use Python details. As a result, the new implementation can use the transaction less agressively and avoid some extra output since no data had been written yet. That seems like a good side effect.
Thu, 26 Oct 2023 05:37:37 +0200 revlog: add a `canonical_index_file` attribute on inner revlog
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Oct 2023 05:37:37 +0200] rev 51105
revlog: add a `canonical_index_file` attribute on inner revlog This is currently the same and the index_file but it will become more complex when we start doing delayed write.
Thu, 26 Oct 2023 03:41:58 +0200 changelog-delay: move "delayed" check to a more official API
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Oct 2023 03:41:58 +0200] rev 51104
changelog-delay: move "delayed" check to a more official API To avoid reaching inside the inner object in the future, we needs some official API. We put one of such API early to reduce the size of the final diff.
Thu, 26 Oct 2023 03:29:46 +0200 changelog-delay: move the appender class next to randomaccessfile
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Oct 2023 03:29:46 +0200] rev 51103
changelog-delay: move the appender class next to randomaccessfile We want to move the delay/divert logic at the revlog level (to have all IO related logic in the _InnerRevlog) we start with small piece that are easy to move on their own.
Fri, 20 Oct 2023 12:13:33 +0200 changelog-delay: adds some check around delaying and diverting write
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2023 12:13:33 +0200] rev 51102
changelog-delay: adds some check around delaying and diverting write Theses assert shows we never call delay or divert if the revlog hold file handle on the revlog's file.
Wed, 25 Oct 2023 23:14:20 +0200 revlog: consolidate cache invalidation within the inner objet
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Oct 2023 23:14:20 +0200] rev 51101
revlog: consolidate cache invalidation within the inner objet The invalidation of data that belong to the inner object can and should be delegated to the inner object.
Tue, 24 Oct 2023 11:06:04 +0200 shelve: drop some weird manually stripping before transaction abort
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2023 11:06:04 +0200] rev 51100
shelve: drop some weird manually stripping before transaction abort I cannot find a case where this is actually useful, so lets triggering strip in the middle of uncommitted transaction.
Thu, 19 Oct 2023 05:19:55 +0200 revlog: move entry writing in the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2023 05:19:55 +0200] rev 51099
revlog: move entry writing in the inner object This is the second big piece of API we want to live on the inner object. With this the inner object have freedom it needs to implement things internally. (except for the delayed write feature of the changelog, that will be migrated in coming changesets)
Thu, 19 Oct 2023 04:11:39 +0200 revlog: move `sidedata` in the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2023 04:11:39 +0200] rev 51098
revlog: move `sidedata` in the inner object Same object as rawtext, but for sidedata.
Thu, 19 Oct 2023 03:52:31 +0200 revlog: move the `rawtext` method on the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2023 03:52:31 +0200] rev 51097
revlog: move the `rawtext` method on the inner object This is one of the current core goal of the inner object: having a "simple" API for some of the core revlog action, like getting a raw text, with the inner object able to do that part internally, on its own.
Thu, 19 Oct 2023 03:33:59 +0200 revlog: move the_revisioncache on the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2023 03:33:59 +0200] rev 51096
revlog: move the_revisioncache on the inner object The goal for this inner object is to compute that things we cache, it make more sense to have the inner object handle it directly.
Thu, 19 Oct 2023 03:07:39 +0200 revlog: move the `deltachain` method on the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2023 03:07:39 +0200] rev 51095
revlog: move the `deltachain` method on the inner object This is a necessary step before being able to move more logic around restoring a revision content there. For now, we do a simple patch for the perf extension logic, when the implementation of the inner object changes, we will likely need some evolution of the API. However this is true of many things in the perf extension. So we will see this later.
Thu, 19 Oct 2023 03:00:58 +0200 revlog: move the `_chunks` method on the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2023 03:00:58 +0200] rev 51094
revlog: move the `_chunks` method on the inner object This is a necessary step before being able to move more logic around restoring a revision content there. For now, we do a simple patch for the perf extension logic, when the implementation of the inner object changes, we will likely need some evolution of the API. However this is true of many things in the perf extension. So we will see this later.
Wed, 25 Oct 2023 04:40:40 +0200 revlog: add a couple more of useful method on the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Oct 2023 04:40:40 +0200] rev 51093
revlog: add a couple more of useful method on the inner object This will be needed for the next changeset.
Thu, 19 Oct 2023 02:57:05 +0200 revlog: move the `_chunk` method on the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2023 02:57:05 +0200] rev 51092
revlog: move the `_chunk` method on the inner object This is a necessary step before being able to move more logic around restoring a revision content there. For now, we do a simple patch for the perf extension logic, when the implementation of the inner object changes, we will likely need some evolution of the API. However this is true of many things in the perf extension. So we will see this later.
Wed, 25 Oct 2023 02:13:18 +0200 revlog: move the compression/decompression logic on the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Oct 2023 02:13:18 +0200] rev 51091
revlog: move the compression/decompression logic on the inner object This is a necessary step before being able to move more logic around restoring a revision content there. For now, we do a simple patch for the perf extension logic, when the implementation of the inner object changes, we will likely need some evolution of the API. However this is true of many things in the perf extension. So we will see this later.
Mon, 23 Oct 2023 14:27:07 +0200 revlog: move the splitting-inline-revlog logic inside the inner object
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2023 14:27:07 +0200] rev 51090
revlog: move the splitting-inline-revlog logic inside the inner object This is another large IO block that we need to move within the inner object if we want's it to be self sufficient.
Wed, 25 Oct 2023 01:02:47 +0200 revlog: synchronise the various attribute holding the index filename
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Oct 2023 01:02:47 +0200] rev 51089
revlog: synchronise the various attribute holding the index filename The segmentfile and the attribute need to be synchronized, let's enforce that.
Thu, 19 Oct 2023 01:50:07 +0200 revlog: drop reference to docket in the inline-splitting code
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2023 01:50:07 +0200] rev 51088
revlog: drop reference to docket in the inline-splitting code revlog with a docket do not use inline revlog and do not need to split them. So we can remove some code handling docket there.
Tue, 24 Oct 2023 17:03:27 +0200 revlog: move _getsegmentforrevs on the internal object
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2023 17:03:27 +0200] rev 51087
revlog: move _getsegmentforrevs on the internal object See inline documentation for details.
Tue, 17 Oct 2023 06:02:33 +0200 revlog: create a iteration of a _InnerRevlog object within the revlog
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Oct 2023 06:02:33 +0200] rev 51086
revlog: create a iteration of a _InnerRevlog object within the revlog The goal of this object is to isolate a sub-API that can be implemented by a compiled object (e.g. Rust). So the boundary of this object will be arbitrary depending of what can we easily implemented in the Compiled code. For now, we start simple, and move the code that manage the IO objects in the inner object. More will come in the coming changesets. Note: the object definition could live in the different module to thin the `revlog.py` file, however there are other better candidate for extraction first and I have enought patch stacked on top of the this one for the split in this patch not to be worth it. So I leave this to future me.
Tue, 17 Oct 2023 05:17:02 +0200 revlog: drop the unused `_chunkcache` attribute
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Oct 2023 05:17:02 +0200] rev 51085
revlog: drop the unused `_chunkcache` attribute Apparently, some time ago, the chunk cache moved in the randomaccessfile object.
Tue, 17 Oct 2023 04:54:22 +0200 revlog: drop the unused `_sidedatareadfp` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Oct 2023 04:54:22 +0200] rev 51084
revlog: drop the unused `_sidedatareadfp` method It has no caller anywhere and is probably the remains of some older code.
Fri, 13 Oct 2023 16:11:04 +0200 revlog: also migrates `revlog.upperboundcomp` to ConfigClass
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 16:11:04 +0200] rev 51083
revlog: also migrates `revlog.upperboundcomp` to ConfigClass This was planned but overlooked when doing the rest of the migration.
Fri, 13 Oct 2023 16:03:26 +0200 revlog: small doc to the `files` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 16:03:26 +0200] rev 51082
revlog: small doc to the `files` method
Wed, 11 Oct 2023 02:19:00 +0200 revlog: remove the `_indexfp` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Oct 2023 02:19:00 +0200] rev 51081
revlog: remove the `_indexfp` method The method is only used two time and we want to move that code to a lower level object. So we simply inline the method to simplify further refactoring.
Sat, 14 Oct 2023 03:24:13 +0200 revlog: avoid opening and closing the file for each cloned revision
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 14 Oct 2023 03:24:13 +0200] rev 51080
revlog: avoid opening and closing the file for each cloned revision The previous code was flushing files after each new revision, slowing things down. For exemple, with this change, the evolve repository can run `hg debugupgraderepo --run --optimize re-delta-parent` in about 3.4s instead of 4.5 seconds.
Fri, 13 Oct 2023 23:21:46 +0200 censor: accept censored revision during upgrade
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 23:21:46 +0200] rev 51079
censor: accept censored revision during upgrade They can simply be passed by as censored.
Fri, 13 Oct 2023 22:40:10 +0200 censor: show that censored revision prevent repository upgrade
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 22:40:10 +0200] rev 51078
censor: show that censored revision prevent repository upgrade This is not great.
Thu, 12 Oct 2023 17:41:06 +0100 stream-clone: fix a crash when a repo with an empty revlog is cloned stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 12 Oct 2023 17:41:06 +0100] rev 51077
stream-clone: fix a crash when a repo with an empty revlog is cloned
Tue, 19 Sep 2023 03:15:12 +0200 debug-delta-chain: print less data by default
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 03:15:12 +0200] rev 51076
debug-delta-chain: print less data by default This is faster and simpler to read.
Tue, 19 Sep 2023 03:00:44 +0200 debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 03:00:44 +0200] rev 51075
debugdeltachain: add a parameter to display all info This will be useful with the next changeset that change the defaul output to display the minimum amount of information.
Tue, 19 Sep 2023 02:20:49 +0200 debug-delta-chain: actually skip unrequested computation
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 02:20:49 +0200] rev 51074
debug-delta-chain: actually skip unrequested computation Doing quick test on mozilla-unified show we can run up to 2× faster by skipping some of these computation.
Tue, 19 Sep 2023 01:53:03 +0200 debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 01:53:03 +0200] rev 51073
debug-delta-chain: add options to control what we compute Currently this mostly controls what we display, but actual computation saving will come soon.
Tue, 19 Sep 2023 01:24:10 +0200 debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 01:24:10 +0200] rev 51072
debug-delta-chaing: add a parameter to select revision to look at This allows for much faster runtime when we are interrested in some revisions only.
Mon, 18 Sep 2023 23:37:06 +0200 delta-chain: extract some debugdeltachain logic is object
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Sep 2023 23:37:06 +0200] rev 51071
delta-chain: extract some debugdeltachain logic is object Moving from a closure to an object's method will help us to extend the command logic.
Mon, 18 Sep 2023 23:26:00 +0200 delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Sep 2023 23:26:00 +0200] rev 51070
delta-chain: move the debugdeltachain command in revlogutils There is a dedicated `mercurial.revlogutils.debug` module were this code fits well.
Thu, 12 Oct 2023 09:04:12 +0200 dirstate: document the `changing_*` context manager
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 12 Oct 2023 09:04:12 +0200] rev 51069
dirstate: document the `changing_*` context manager The methods that requires them have documentation, but the context themselves had none. This is now fixed.
Tue, 10 Oct 2023 10:47:46 +0200 revlog: deprecate the compatibility config property
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:47:46 +0200] rev 51068
revlog: deprecate the compatibility config property Now that core is no longer use them, we can deprecated them. Let us aim at removing them in the next version.
Tue, 10 Oct 2023 12:03:02 +0200 revlog: remove legacy usage of `_lazydeltabase`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 12:03:02 +0200] rev 51067
revlog: remove legacy usage of `_lazydeltabase` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:36:55 +0200 revlog: remove legacy usage of `_lazydelta`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:36:55 +0200] rev 51066
revlog: remove legacy usage of `_lazydelta` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:36:34 +0200 revlog: remove legacy usage of `canonical_parent_order`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:36:34 +0200] rev 51065
revlog: remove legacy usage of `canonical_parent_order` All core code is now getting the setting from the FeatureConfig object.
Tue, 10 Oct 2023 11:36:23 +0200 revlog: remove legacy usage of `_compute_rank`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:36:23 +0200] rev 51064
revlog: remove legacy usage of `_compute_rank` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:33:33 +0200 revlog: remove legacy usage of `_srmingapsize`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:33:33 +0200] rev 51063
revlog: remove legacy usage of `_srmingapsize` All core code is now getting the setting from the DataConfig object.
Tue, 10 Oct 2023 11:30:07 +0200 revlog: remove legacy usage of `_srdensitythreshold`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:30:07 +0200] rev 51062
revlog: remove legacy usage of `_srdensitythreshold` All core code is now getting the setting from the DataConfig object.
Tue, 10 Oct 2023 11:29:19 +0200 revlog: remove legacy usage of `hassidedata`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:29:19 +0200] rev 51061
revlog: remove legacy usage of `hassidedata` All core code is now getting the setting from the FeatureConfig object.
Tue, 10 Oct 2023 11:27:39 +0200 revlog: remove legacy usage of `_sparserevlog`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:27:39 +0200] rev 51060
revlog: remove legacy usage of `_sparserevlog` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:24:37 +0200 revlog: remove legacy usage of `_withsparseread`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:24:37 +0200] rev 51059
revlog: remove legacy usage of `_withsparseread` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:16:07 +0200 revlog: remove legacy usage of `_maxdeltachainspan`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:16:07 +0200] rev 51058
revlog: remove legacy usage of `_maxdeltachainspan` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:13:24 +0200 revlog: remove legacy usage of `_compengineopts`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:13:24 +0200] rev 51057
revlog: remove legacy usage of `_compengineopts` All core code is now getting the setting from the FeatureConfig object.
Tue, 10 Oct 2023 11:12:06 +0200 revlog: remove legacy usage of `_compengine`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:12:06 +0200] rev 51056
revlog: remove legacy usage of `_compengine` All core code is now getting the setting from the FeatureConfig object.
Wed, 11 Oct 2023 00:04:23 +0200 revlog: remove legacy usage of `_candidate_group_chunk_size`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Oct 2023 00:04:23 +0200] rev 51055
revlog: remove legacy usage of `_candidate_group_chunk_size` All core code is now getting the setting from the DeltaConfig object.
Wed, 11 Oct 2023 00:04:08 +0200 revlog: remove legacy usage of `_debug_delta`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Oct 2023 00:04:08 +0200] rev 51054
revlog: remove legacy usage of `_debug_delta` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:07:15 +0200 revlog: remove legacy usage of `_deltabothparents`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:07:15 +0200] rev 51053
revlog: remove legacy usage of `_deltabothparents` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:05:54 +0200 revlog: remove legacy usage of `_maxchainlen`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:05:54 +0200] rev 51052
revlog: remove legacy usage of `_maxchainlen` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 11:04:40 +0200 revlog: remove legacy usage of `_chunkcachesize`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:04:40 +0200] rev 51051
revlog: remove legacy usage of `_chunkcachesize` All core code is now getting the setting from the DataConfig object.
Tue, 10 Oct 2023 11:04:07 +0200 revlog: remove legacy usage of `_censorable`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:04:07 +0200] rev 51050
revlog: remove legacy usage of `_censorable` All core code is now getting the setting from the FeatureConfig object.
Tue, 10 Oct 2023 11:02:24 +0200 revlog: remove legacy usage of `_mmaplargeindex`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:02:24 +0200] rev 51049
revlog: remove legacy usage of `_mmaplargeindex` All core code is now getting the setting from the DataConfig object.
Tue, 10 Oct 2023 11:02:00 +0200 revlog: remove legacy usage of `_checkambig`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:02:00 +0200] rev 51048
revlog: remove legacy usage of `_checkambig` All core code is now getting the setting from the DataConfig object.
Tue, 10 Oct 2023 10:58:28 +0200 revlog: drop the _generaldelta attribute from the imanifeststorage interface
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:58:28 +0200] rev 51047
revlog: drop the _generaldelta attribute from the imanifeststorage interface It never belonged here.
Tue, 10 Oct 2023 10:56:42 +0200 revlog: remove legacy usage of `_generaldelta`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:56:42 +0200] rev 51046
revlog: remove legacy usage of `_generaldelta` All core code is now getting the setting from the DeltaConfig object.
Tue, 10 Oct 2023 18:02:20 +0200 revlog: use the new Config classes in _testrevlog
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 18:02:20 +0200] rev 51045
revlog: use the new Config classes in _testrevlog the mock object need to follow the new interface. We allow ourself a small hacky import since this is testing code. The legacy attribute are still here because some code still use them. We will drop them when this code is updated.
Tue, 10 Oct 2023 10:04:06 +0200 revlog: skip opener options to pass sparse reading values
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:04:06 +0200] rev 51044
revlog: skip opener options to pass sparse reading values We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:03:58 +0200 revlog: skip opener options to pass sparse_revlog value
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:58 +0200] rev 51043
revlog: skip opener options to pass sparse_revlog value We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:03:50 +0200 revlog: skip opener options to pass mmap_index_threshold value
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:50 +0200] rev 51042
revlog: skip opener options to pass mmap_index_threshold value We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:03:42 +0200 revlog: skip opener options to pass enable_ellipsis
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:42 +0200] rev 51041
revlog: skip opener options to pass enable_ellipsis We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:03:34 +0200 revlog: skip opener options to pass compression option values
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:34 +0200] rev 51040
revlog: skip opener options to pass compression option values We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:03:26 +0200 revlog: skip opener options to pass compression_engine value
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:26 +0200] rev 51039
revlog: skip opener options to pass compression_engine value We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:03:18 +0200 revlog: skip opener options to pass max_chain_len
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:18 +0200] rev 51038
revlog: skip opener options to pass max_chain_len We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:03:09 +0200 revlog: skip opener options to pass max_deltachain_span
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:09 +0200] rev 51037
revlog: skip opener options to pass max_deltachain_span We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:03:01 +0200 revlog: skip opener options to pass lazy_delta values
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:01 +0200] rev 51036
revlog: skip opener options to pass lazy_delta values We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:02:53 +0200 revlog: skip opener options to pass debug_delta value
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:53 +0200] rev 51035
revlog: skip opener options to pass debug_delta value We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:02:45 +0200 revlog: skip opener options to pass candidate_group_chunk_size value
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:45 +0200] rev 51034
revlog: skip opener options to pass candidate_group_chunk_size value We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:02:37 +0200 revlog: skip opener option to pass delta_both_parents value
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:37 +0200] rev 51033
revlog: skip opener option to pass delta_both_parents value We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:02:29 +0200 revlog: skip opener option to pass chunk_cache_size value
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:29 +0200] rev 51032
revlog: skip opener option to pass chunk_cache_size value We can directly set the option in the config object now.
Tue, 10 Oct 2023 10:02:21 +0200 revlog: create the revlog object at the repository level
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:21 +0200] rev 51031
revlog: create the revlog object at the repository level There is currently no value set in it, but we will be able to start centralise config parsing at the repository level.
Tue, 10 Oct 2023 10:02:13 +0200 revlog: overwrite revlog config through copy of the config object
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:13 +0200] rev 51030
revlog: overwrite revlog config through copy of the config object The new objects allow for this kind of blanket approach that make things cleaner. If we have more cases, it would probably deserve a context manager, but since we only have two usage, I don't think it is worth it.
Tue, 10 Oct 2023 10:02:05 +0200 revlog: move configuration attribute into dedicated object
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:05 +0200] rev 51029
revlog: move configuration attribute into dedicated object First this make things clearer as the number of configuration attributes has grown out of control, so gathering them make things clearer. Second, this will make future sharing them at different level simpler. Third it will allow us to make initialisation and temporary override simpler soon.
Tue, 10 Oct 2023 10:01:57 +0200 manifestrevlog: flag some inconsistency in bundle/union repo inheritance
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:01:57 +0200] rev 51028
manifestrevlog: flag some inconsistency in bundle/union repo inheritance This "work" but still, this is weird, let us point it out.
Sat, 30 Sep 2023 02:02:36 +0200 randomaccessfile: drop explicit passing of file description
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 30 Sep 2023 02:02:36 +0200] rev 51027
randomaccessfile: drop explicit passing of file description The goal of this object is to manage IO, we still have to open the file if necessary, but this is all internal now.
Tue, 26 Sep 2023 02:54:50 +0200 revlog: drop more file description passing between private function
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 02:54:50 +0200] rev 51026
revlog: drop more file description passing between private function They are no longer used as we are covered by the `reading` context
Tue, 26 Sep 2023 02:49:18 +0200 revlog: use a `reading` context in `_enforceinlinesize`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 02:49:18 +0200] rev 51025
revlog: use a `reading` context in `_enforceinlinesize` We are about to enforce reading context on various operation, so we make sure top level method are in the right context. In the future we might move the responsibility of opening the revlog for reading higher in the call chain but lets limit the disruption for now.
Tue, 26 Sep 2023 00:55:49 +0200 revlog: drop the df argument to `sidedata`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 00:55:49 +0200] rev 51024
revlog: drop the df argument to `sidedata` The intend of this argument is better filled by the `revlog.reading` or `revlog._writing` context. So we drop it to leave rooms for further cleanup and improvements.
Tue, 26 Sep 2023 00:54:46 +0200 revlog: drop the df argument to `rawdata`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 00:54:46 +0200] rev 51023
revlog: drop the df argument to `rawdata` The intend of this argument is better filled by the `revlog.reading` or `revlog._writing` context. So we drop it to leave rooms for further cleanup and improvements.
Mon, 25 Sep 2023 22:52:01 +0200 revlog: drop the df argument to `revision`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 22:52:01 +0200] rev 51022
revlog: drop the df argument to `revision` The intend of this argument is better filled by the `revlog.reading` or `revlog._writing` context. So we drop it to leave rooms for further cleanup and improvements.
Tue, 26 Sep 2023 01:05:02 +0200 interfaces: drop the `raw` parameters on ifiledata interface
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 01:05:02 +0200] rev 51021
interfaces: drop the `raw` parameters on ifiledata interface In practice it was not implemented since forever. The `rawdata` method fit that purpose. The interface checking does not detect that because it seems to confuse the `_df` argument for the `raw` one. Dropping that `_df` argument in a descendant changesets revealed the issue.
Mon, 25 Sep 2023 22:51:57 +0200 delta-computer: stop explicitly taking file handle
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 22:51:57 +0200] rev 51020
delta-computer: stop explicitly taking file handle The revlog has all the logic for opening and caching such handles, so no need to duplicate it here. In addition, this let the revlog handle that logic by itself which is better.
Mon, 25 Sep 2023 16:47:55 +0200 censors: simply use `revlog.reading` to keep things open dring rewrite
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 16:47:55 +0200] rev 51019
censors: simply use `revlog.reading` to keep things open dring rewrite We have a dedicated context now, we can simply use it. In practice, we cannot "simply" use it, as `finddeltainfo` still requires the file pointer to be passed explicitly. We will keep the old context manager open for a small bit until we get rid of it in a future changeset.
Mon, 25 Sep 2023 17:18:40 +0200 stream-clone: use `revlog.reading` in `revlog.get_streams`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 17:18:40 +0200] rev 51018
stream-clone: use `revlog.reading` in `revlog.get_streams` We can get the same result while using more standard method, so we do.
Mon, 25 Sep 2023 16:57:53 +0200 debug-revlog: keep the revlog open for the analysis duration
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 16:57:53 +0200] rev 51017
debug-revlog: keep the revlog open for the analysis duration This is more explicit. No performance differences were observed.
Mon, 25 Sep 2023 16:36:17 +0200 repo-upgrade: keep the revlog open while cloning
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 16:36:17 +0200] rev 51016
repo-upgrade: keep the revlog open while cloning This is more explicit. No performance differences were observed.
Mon, 25 Sep 2023 12:37:52 +0200 verify: keep the revlog open for reading while verifying it
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 12:37:52 +0200] rev 51015
verify: keep the revlog open for reading while verifying it This is more explicit. No performances difference were observed.
Mon, 25 Sep 2023 12:32:42 +0200 convert: use `changelogrevision` to fetch changeset data instead of read
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 12:32:42 +0200] rev 51014
convert: use `changelogrevision` to fetch changeset data instead of read This `changelogrevision` is a higher level function that will remain simple to use as we refactor the revlog.
Mon, 25 Sep 2023 12:14:38 +0200 revlog: adapt the `reading` check for `unionrepo`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 12:14:38 +0200] rev 51013
revlog: adapt the `reading` check for `unionrepo` We cannot just rely on the length check for the `unionrepo` as the local revlog might be empty while the other revlog contains data. In addition, we need to also open the second revlog for reading when needed.
Mon, 25 Sep 2023 12:13:38 +0200 revlog: adapt the `reading` check for `bundlerepo`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 12:13:38 +0200] rev 51012
revlog: adapt the `reading` check for `bundlerepo` We cannot just rely on the length check for the `bundlerepo` as the local revlog might be empty with all data in the bundle.
Mon, 25 Sep 2023 12:07:25 +0200 revlog: make `reading` not crash on empty repository
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 12:07:25 +0200] rev 51011
revlog: make `reading` not crash on empty repository If the revlog is empty, the file might not exist and the open will fails. This is not great, but that details or this is now contained in the revlog itself.
Mon, 25 Sep 2023 11:59:38 +0200 changelog: make the `_delayopener` a real proxy
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 11:59:38 +0200] rev 51010
changelog: make the `_delayopener` a real proxy We use the same approach as the `_divertopener`. This make it possible to use other methods of the vfs and not just the `__call__` API.
Mon, 25 Sep 2023 11:23:38 +0200 perf: ensure all readlog's reading is done within a `reading` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 11:23:38 +0200] rev 51009
perf: ensure all readlog's reading is done within a `reading` context We are about to enforce this at the revlog level, so we update the perf code in advance.
Mon, 25 Sep 2023 11:13:44 +0200 perf: change the way we approach revlog reading
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 11:13:44 +0200] rev 51008
perf: change the way we approach revlog reading If the `reading` context manager is available, we should use it over explicit file handle management. This will help us to make file handle management a matter more internal to the revlog.
Tue, 19 Sep 2023 23:14:36 +0200 revlog: document the `rev` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 23:14:36 +0200] rev 51007
revlog: document the `rev` method A small docstring does not hurt.
Tue, 19 Sep 2023 23:14:01 +0200 revlog: document the `clearcaches` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 23:14:01 +0200] rev 51006
revlog: document the `clearcaches` method A small docstring does not hurt.
Tue, 19 Sep 2023 23:13:16 +0200 revlog: document the `update_caches` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 23:13:16 +0200] rev 51005
revlog: document the `update_caches` method A small docstring does not hurt.
Tue, 19 Sep 2023 23:10:05 +0200 revlog: make the `candelta` method private
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 23:10:05 +0200] rev 51004
revlog: make the `candelta` method private It is only used internally, so lets make it clear.
Tue, 19 Sep 2023 23:09:29 +0200 revlog: document the `get_streams` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 23:09:29 +0200] rev 51003
revlog: document the `get_streams` method A small docstring does not hurt.
Tue, 19 Sep 2023 22:52:54 +0200 revlog: document the `is_inline_index` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 22:52:54 +0200] rev 51002
revlog: document the `is_inline_index` method A small docstring does not hurt.
Wed, 11 Oct 2023 15:15:28 +0200 opemvms: add specific files and utilities
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Wed, 11 Oct 2023 15:15:28 +0200] rev 51001
opemvms: add specific files and utilities
Thu, 03 Aug 2023 02:48:28 +0200 openvms: do not check for shebang in openvms script
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 03 Aug 2023 02:48:28 +0200] rev 51000
openvms: do not check for shebang in openvms script It does not apply to them.
Thu, 03 Aug 2023 02:30:57 +0200 openvms: consider worker costly on OpenVMS
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:30:57 +0200] rev 50999
openvms: consider worker costly on OpenVMS As for Windows, the parallel worker feature is less appealing on OpenVMS.
Thu, 03 Aug 2023 02:33:22 +0200 openvms: fix the pager spawning and cleanup
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:33:22 +0200] rev 50998
openvms: fix the pager spawning and cleanup Unsurprisingly, pager handling needs some adjustment.
Thu, 03 Aug 2023 02:32:28 +0200 openvms: make process spawning works on OpenVMS
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:32:28 +0200] rev 50997
openvms: make process spawning works on OpenVMS We need to adjust some behavior for OpenVMS.
Thu, 03 Aug 2023 02:34:17 +0200 openvms: mark symlink as unsupported on OpenVMS
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:34:17 +0200] rev 50996
openvms: mark symlink as unsupported on OpenVMS OpenVMS's symlink emulation is broken on some OpenVMS versions, so we better disable them altogether for now.
Thu, 03 Aug 2023 02:28:52 +0200 openvms: duck-punch a bugfix into `environb` object
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:28:52 +0200] rev 50995
openvms: duck-punch a bugfix into `environb` object The official Python3 build for OpenVMS has some crippling bug that we need to patch dynamically OpenVMS patches
Wed, 11 Oct 2023 00:43:24 +0200 fastexport: simplify code
Joerg Sonnenberger <joerg@bec.de> [Wed, 11 Oct 2023 00:43:24 +0200] rev 50994
fastexport: simplify code
Wed, 11 Oct 2023 02:02:46 +0200 branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Oct 2023 02:02:46 +0200] rev 50993
branching: merge stable into default
Tue, 10 Oct 2023 18:29:04 +0200 cleanup: typos, formatting stable
Joerg Sonnenberger <joerg@bec.de> [Tue, 10 Oct 2023 18:29:04 +0200] rev 50992
cleanup: typos, formatting
Sun, 24 Sep 2023 04:35:02 +0200 tests: backed out changeset 8037ddacad47 stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Sep 2023 04:35:02 +0200] rev 50991
tests: backed out changeset 8037ddacad47 This issue with 3.11 was real, but it eventually got fixed after people started building exploit and filling CVE See https://github.com/python/cpython/issues/106242 And https://github.com/python/cpython/pull/106816
Thu, 05 Oct 2023 14:47:42 -0300 httppeer: fix static-http: scheme autodetection (issue6833) stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 Oct 2023 14:47:42 -0300] rev 50990
httppeer: fix static-http: scheme autodetection (issue6833) Since statichttprepo.make_peer() assumes path is a urlutil.path object (by accessing path.loc), we no longer can just provide a bytestring there. See also 5f71fff8dc74 and cfe8d88a453e.
Wed, 25 Jan 2023 15:34:27 +0100 admin-command: add verify command
Raphaël Gomès <rgomes@octobus.net> [Wed, 25 Jan 2023 15:34:27 +0100] rev 50989
admin-command: add verify command Start using the 'admin' namespace by adding a 'verify' command. Invocation is 'admin::verify'. The idea is to progressively add more focused checks than the existing verify command. To do so we need an advanced way to express what we want to check. The first check for admin::verify is 'working-copy.dirstate' which has no options, because it was an easy first check to implement, which verifies the integrity of the dirstate. This changeset was created with the help of Franck Bret.
Wed, 13 Sep 2023 12:25:51 +0200 transaction: abstract away the detection of an abandoned transaction
Raphaël Gomès <rgomes@octobus.net> [Wed, 13 Sep 2023 12:25:51 +0200] rev 50988
transaction: abstract away the detection of an abandoned transaction We're about to add another place where this is used, let's not spill this implementation detail.
Wed, 25 Jan 2023 15:33:39 +0100 commands: add admin namespace
Franck Bret <franck.bret@octobus.net> [Wed, 25 Jan 2023 15:33:39 +0100] rev 50987
commands: add admin namespace In order to stop abusing the 'debug' namespace for non-debug command, it adds a new 'admin' namespace dedicated to 'admin' operations on a repository (i.e commands suitable for administration tasks). This namespace entry would be used to migrate in the future some existing commands from the 'debug' namespace, or other top level commands that may not be directly exposed to end users. (verify command is a perfect candidate for this case)
Thu, 14 Sep 2023 10:52:09 +0100 revlog: make the rust test for node hex prefix resolution exercise the nodemap stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 14 Sep 2023 10:52:09 +0100] rev 50986
revlog: make the rust test for node hex prefix resolution exercise the nodemap
Wed, 13 Sep 2023 18:28:51 +0100 revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 13 Sep 2023 18:28:51 +0100] rev 50985
revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV The problem is that nodemap already takes care about NULL_NODE resolution (in `validate_candidate` in `nodemap.rs`), so the special handling in `rev_from_node` is unnecessary and incorrect.
Thu, 14 Sep 2023 11:03:41 +0100 tests: reproduce the nullrev bug in an end-to-end test stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 14 Sep 2023 11:03:41 +0100] rev 50984
tests: reproduce the nullrev bug in an end-to-end test
Wed, 09 Aug 2023 15:46:35 +0200 rust-config: fix incorrect coercion of null values to false
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Aug 2023 15:46:35 +0200] rev 50983
rust-config: fix incorrect coercion of null values to false As explained in the previous changeset: Probably being too trigger happy about boolean values, I incorrectly set the transform for a `None` to a `Some(false)`. It would cause for example the `ui.formatted` value to be set to `Some(false)`, which turns off the colors among other things, when `None` would trigger the automatic behavior.
Wed, 09 Aug 2023 15:44:56 +0200 rust-config: show default `null` is coerced incorrectly to `false`
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Aug 2023 15:44:56 +0200] rev 50982
rust-config: show default `null` is coerced incorrectly to `false` Probably being too trigger happy about boolean values, I incorrectly set the transform for a `None` to a `Some(false)`. It would cause for example the `ui.formatted` value to be set to `Some(false)`, which turns off the colors among other things, when `None` would trigger the automatic behavior. This is fixed in the next commit.
Wed, 09 Aug 2023 15:41:18 +0200 rust-config: fix fallback to default not parsing the default value
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Aug 2023 15:41:18 +0200] rev 50981
rust-config: fix fallback to default not parsing the default value When a config item's default is a string, it sometimes needs to be parsed into another type, like in the case of `cmdserver.max-log-size`, that returns a number of bytes from a human-readable amount like `25MB`. The logic for the fix is explained inline.
Tue, 08 Aug 2023 14:14:00 +0200 rust-config: demonstrate a bug when falling back to non-trivial default values
Raphaël Gomès <rgomes@octobus.net> [Tue, 08 Aug 2023 14:14:00 +0200] rev 50980
rust-config: demonstrate a bug when falling back to non-trivial default values The default value (when the user hasn't configured anything) is not run through the value parser, causing a programming error to happen because of type mismatch. This will be fixed in the next commit.
Fri, 18 Aug 2023 14:34:29 +0200 rust: make `Revision` a newtype
Raphaël Gomès <rgomes@octobus.net> [Fri, 18 Aug 2023 14:34:29 +0200] rev 50979
rust: make `Revision` a newtype This change is the one we've been building towards during this series. The aim is to make `Revision` mean more than a simple integer, holding the information that it is valid for a given revlog index. While this still allows for programmer error, since creating a revision directly and querying a different index with a "checked" revision are still possible, the friction created by the newtype will hopefully make us think twice about which type to use. Enough of the Rust ecosystem relies on the newtype pattern to be efficiently optimized away (even compiler in codegen tests¹), so I'm not worried about this being a fundamental problem. [1] https://github.com/rust-lang/rust/blob/7a70647f195f6b0a0f1ebd72b1542ba91a32f43a/tests/codegen/vec-in-place.rs#L47
Thu, 10 Aug 2023 11:01:07 +0200 rust: implement the `Graph` trait for all revlogs
Raphaël Gomès <rgomes@octobus.net> [Thu, 10 Aug 2023 11:01:07 +0200] rev 50978
rust: implement the `Graph` trait for all revlogs This is trivial and makes all the algorithms relying on the trait usable for more use cases.
Thu, 10 Aug 2023 11:00:34 +0200 rust: use the new `UncheckedRevision` everywhere applicable
Raphaël Gomès <rgomes@octobus.net> [Thu, 10 Aug 2023 11:00:34 +0200] rev 50977
rust: use the new `UncheckedRevision` everywhere applicable This step converts all revisions that shouldn't be considered "valid" in any context to `UncheckedRevison`, allowing `Revision` to be changed for a stronger type in a later changeset. Note that the conversion from unchecked to checked is manual and requires at least some thought from the programmer, although directly using `Revision` is still possible. A later changeset will make this mistake harder to make.
Mon, 11 Sep 2023 11:52:33 +0200 rust-revlog: split logic for `rawdata` to prepare for `UncheckedRevision` use
Raphaël Gomès <rgomes@octobus.net> [Mon, 11 Sep 2023 11:52:33 +0200] rev 50976
rust-revlog: split logic for `rawdata` to prepare for `UncheckedRevision` use In the next changeset, we will change the logic to use `UncheckedRevision` in the non-general delta case. The general delta case will use the "checked" path since `base_rev_or_base_of_delta_chain` will be checked.
Mon, 07 Aug 2023 15:07:48 +0200 rust: remove unused error variant
Raphaël Gomès <rgomes@octobus.net> [Mon, 07 Aug 2023 15:07:48 +0200] rev 50975
rust: remove unused error variant All paths check that the working directory revision is not used.
Mon, 07 Aug 2023 12:53:43 +0200 rust: add `UncheckedRevision` type
Raphaël Gomès <rgomes@octobus.net> [Mon, 07 Aug 2023 12:53:43 +0200] rev 50974
rust: add `UncheckedRevision` type This is the start of a series whose aim is to separate "checked" and "unchecked" revision numbers. A "checked" revision number is valid for a given index, allowing us to have faster algorithms that don't do redundant checks all the time and have a clearer view of the kinds of revisions we're working with.
Mon, 21 Aug 2023 17:57:48 -0400 debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:57:48 -0400] rev 50973
debugwireproto: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:54:01 -0400 debugwireargs: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:54:01 -0400] rev 50972
debugwireargs: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:49:57 -0400 debugwalk: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:49:57 -0400] rev 50971
debugwalk: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:47:52 -0400 debug_revlog_stats: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:47:52 -0400] rev 50970
debug_revlog_stats: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:46:44 -0400 debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:46:44 -0400] rev 50969
debugbackupbundle: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:43:52 -0400 debugsidedata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:43:52 -0400] rev 50968
debugsidedata: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:41:01 -0400 debugserve: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:41:01 -0400] rev 50967
debugserve: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:39:22 -0400 debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:39:22 -0400] rev 50966
debugrevspec: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:36:36 -0400 debugrevlogindex: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:36:36 -0400] rev 50965
debugrevlogindex: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:35:13 -0400 debugrevlog: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:35:13 -0400] rev 50964
debugrevlog: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:34:13 -0400 debugrename: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:34:13 -0400] rev 50963
debugrename: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:33:00 -0400 debugrebuildfncache: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:33:00 -0400] rev 50962
debugrebuildfncache: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:31:53 -0400 debugpickmergetool: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:31:53 -0400] rev 50961
debugpickmergetool: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:29:56 -0400 debugp2copies: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:29:56 -0400] rev 50960
debugp2copies: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:29:05 -0400 debugp1copies: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:29:05 -0400] rev 50959
debugp1copies: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:26:56 -0400 debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:26:56 -0400] rev 50958
debugobsolete: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:23:16 -0400 debugmergestate: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:23:16 -0400] rev 50957
debugmergestate: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:20:14 -0400 debugknown: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:20:14 -0400] rev 50956
debugknown: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:18:56 -0400 debuginstall: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:18:56 -0400] rev 50955
debuginstall: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:16:43 -0400 debugindexdot: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:16:43 -0400] rev 50954
debugindexdot: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:15:30 -0400 debuggetbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:15:30 -0400] rev 50953
debuggetbundle: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:14:18 -0400 debugformat: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:14:18 -0400] rev 50952
debugformat: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:12:03 -0400 debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:12:03 -0400] rev 50951
debugfileset: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:09:45 -0400 debugextensions: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:09:45 -0400] rev 50950
debugextensions: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:06:47 -0400 debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:06:47 -0400] rev 50949
debugdiscovery: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:58:23 -0400 debugdeltafind: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:58:23 -0400] rev 50948
debugdeltafind: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:56:38 -0400 debugdeltachain: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:56:38 -0400] rev 50947
debugdeltachain: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:53:16 -0400 debugdata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:53:16 -0400] rev 50946
debugdata: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:51:07 -0400 debugcapabilities: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:51:07 -0400] rev 50945
debugcapabilities: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:19:51 -0400 debugbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:19:51 -0400] rev 50944
debugbundle: migrate `opts` to native kwargs This is a utility function that's only called by `debugbundle()`. The rest of the command was previously ported.
Fri, 08 Sep 2023 20:34:41 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Sep 2023 20:34:41 +0200] rev 50943
branching: merge with stable
Wed, 21 Jun 2023 21:57:44 +0200 tags: avoid expensive access to repo.changelog in a loop stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2023 21:57:44 +0200] rev 50942
tags: avoid expensive access to repo.changelog in a loop repo.changelog needs some cache invalidation when run on filtered repository. Accessing it in that loop can be expensive when there is many heads (e.g. mozilla try and it 25 000 heads). Note that the loop itself seems useless, but after this patch it no longer take about ⅛ of the time we spend computing cache for mozilla try. before : ! wall 0.350994 comb 0.350000 user 0.330000 sys 0.020000 (median of 28) after : ! wall 0.319520 comb 0.310000 user 0.290000 sys 0.020000 (median of 30)
Thu, 22 Jun 2023 19:41:26 +0200 blackbox: add a option to duplicate output to stderr too stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2023 19:41:26 +0200] rev 50941
blackbox: add a option to duplicate output to stderr too This is useful when debugging some performance operation.
Fri, 23 Jun 2023 17:22:42 +0200 perf: add a --update-last flag to perf::tags stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Jun 2023 17:22:42 +0200] rev 50940
perf: add a --update-last flag to perf::tags See inline documentation for details.
Thu, 22 Jun 2023 18:39:29 +0200 perf: add a `--clear-fnode-cache-rev` argument to perf::tags stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2023 18:39:29 +0200] rev 50939
perf: add a `--clear-fnode-cache-rev` argument to perf::tags This will help us test this in situation closer to an update after a commit or a push.
Thu, 22 Jun 2023 16:03:18 +0200 perf: introduce more cache invalidation option in perf::tags stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2023 16:03:18 +0200] rev 50938
perf: introduce more cache invalidation option in perf::tags This will help us to assert the performance of different versions in more diverse situations. We introduce helper function in the tags module in case invalidating such cache becomes different in the future.
Fri, 08 Sep 2023 15:33:03 +0200 hgweb: pass strings in WSGI environment correctly from wsgicgi stable
Manuel Jacob <me@manueljacob.de> [Fri, 08 Sep 2023 15:33:03 +0200] rev 50937
hgweb: pass strings in WSGI environment correctly from wsgicgi According to PEP 3333, the strings in the WSGI environment must be translatable to bytes using the ISO-8859-1 codec.
Wed, 06 Sep 2023 18:12:27 +0200 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:12:27 +0200] rev 50936
branching: merge stable into default
Wed, 06 Sep 2023 18:11:12 +0200 Added signature for changeset 5a8b54201039 stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:11:12 +0200] rev 50935
Added signature for changeset 5a8b54201039
Wed, 06 Sep 2023 18:11:10 +0200 Added tag 6.5.2 for changeset 5a8b54201039 stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:11:10 +0200] rev 50934
Added tag 6.5.2 for changeset 5a8b54201039
Wed, 06 Sep 2023 18:10:44 +0200 relnotes: add 6.5.2 stable 6.5.2
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:10:44 +0200] rev 50933
relnotes: add 6.5.2
Wed, 30 Aug 2023 12:24:12 +0200 run-tests: detect HGWITHRUSTEXT value stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:24:12 +0200] rev 50932
run-tests: detect HGWITHRUSTEXT value Without this, some manual check in tests/test-dirstate.t could get confused by the lack of `rust` in module policy and break the test.
Wed, 30 Aug 2023 11:31:05 +0100 tests: avoid test environment affecting setup.py stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 30 Aug 2023 11:31:05 +0100] rev 50931
tests: avoid test environment affecting setup.py In particular [RHG_FALLBACK_EXECUTABLE] is being set prematurely, before rhg is built, but probably the rest of the env changes don't help, either.
Mon, 04 Sep 2023 13:33:32 +0100 setup: make the error "Unable to find a working hg binary" more informative stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 04 Sep 2023 13:33:32 +0100] rev 50930
setup: make the error "Unable to find a working hg binary" more informative The error message now shows the attempted hg commands and their stderr, to make it easier to investigate why things are not working. Here's an example output /!\ /!\ Unable to find a working hg binary /!\ Version cannot be extracted from the repository /!\ Re-run the setup once a first version is built /!\ Attempts: /!\ attempt #0: /!\ cmd: ['hg-missing', 'log', '-r.', '-Ttest'] /!\ exception: [Errno 2] No such file or directory: 'hg-missing': 'hg-missing' /!\ attempt #1: /!\ cmd: ['/usr/bin/python3', 'hg', 'log', '-r.', '-Ttest'] /!\ return code: 255 /!\ std output: /!\ std error: *** failed to import extension "topic": No module named 'topic' *** failed to import extension "evolve": No module named 'evolve' abort: accessing `dirstate-v2` repository without associated fast implementation. (check `hg help config.format.use-dirstate-v2` for details) /!\ /!\ Could not determine the Mercurial version /!\ You need to build a local version first /!\ Run `make local` and try again /!\
Fri, 01 Sep 2023 00:09:55 +0200 pycompat: drop usage of hasattr/getattr/setattr/delatt proxy
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 00:09:55 +0200] rev 50929
pycompat: drop usage of hasattr/getattr/setattr/delatt proxy The function remains to ease extensions transition, but we no longer use them in core.
Thu, 31 Aug 2023 23:56:15 +0200 safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 23:56:15 +0200] rev 50928
safehasattr: drop usage in favor of hasattr The two functions should now be equivalent at least in their usage in core.
Thu, 08 Dec 2022 15:33:19 +0100 check-code: drop the `safehasattr` rule
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Dec 2022 15:33:19 +0100] rev 50927
check-code: drop the `safehasattr` rule Since we no longer supports Python 2 we no longer needs to use a custom function to compensate the short comings of the global `hasattr` function in it. We cannot use the Python 3 `hasattr` function instead.
Fri, 01 Sep 2023 16:36:13 +0200 url: ignore some future pytype error
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 16:36:13 +0200] rev 50926
url: ignore some future pytype error As soon as we start using the builtins `hasattr` function, pytype will start getting confused about which types are available or not. So we ignore this error beforehand.
Fri, 01 Sep 2023 16:35:05 +0200 url: move the _generic_proxytunnel in the `has_https` block
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 16:35:05 +0200] rev 50925
url: move the _generic_proxytunnel in the `has_https` block It is only used when https exists. If you stay out of the block, pytype complains that the type of its argument are not declared.
Thu, 08 Dec 2022 15:57:42 +0100 pycompat: deprecate using bytes
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Dec 2022 15:57:42 +0100] rev 50924
pycompat: deprecate using bytes Python2 has been dropped for a while, so lets comply to the signature of the global function. This open the way to drop the use of `pycompat.getattr` and company, and, especially, the associated `util.safehasattr`.
Thu, 31 Aug 2023 02:41:33 +0200 dynamic-import: use sysstr for importing extension and others
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 02:41:33 +0200] rev 50923
dynamic-import: use sysstr for importing extension and others This logic is used by extensions, and python hooks and merge-tools. All this logic eventually deals with native string (unicode in Python 3). This patch makes it handle `str` directly instead of relying on some pycompat low lever layer to do the conversion at the last minutes. We adjust the Python version filtering of a test as the output seems to be present with Python 3.7 too.
Thu, 31 Aug 2023 01:54:48 +0200 extension: check the command attributes using `sysstr`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:54:48 +0200] rev 50922
extension: check the command attributes using `sysstr` Since we are checking attributes, lets use the native representation instead of bytes.
Thu, 31 Aug 2023 01:47:07 +0200 extension: access special module members using sysstr
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:47:07 +0200] rev 50921
extension: access special module members using sysstr These extensions variables and mapping are module attributes so they should be dealt with unicode `str` in Python 3. We move the part that deal with reading theses variable and checking their validity to use unicode `str` string.
Wed, 30 Aug 2023 11:50:01 +0200 sshpeer: convert command name to sysstr before accessing method
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 11:50:01 +0200] rev 50920
sshpeer: convert command name to sysstr before accessing method Method name are `str` so we should pass them as `str`.
Wed, 30 Aug 2023 01:23:30 +0200 localrepo: purge filecache attribute using there unicode name
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 01:23:30 +0200] rev 50919
localrepo: purge filecache attribute using there unicode name This could be better, but that's a good step.
Thu, 31 Aug 2023 01:21:57 +0200 fastannotate: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:21:57 +0200] rev 50918
fastannotate: use sysstr to check for attribute presence We do not need bytes here.
Thu, 31 Aug 2023 01:21:04 +0200 fastannotate: use sysstr to deal with some attributes
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:21:04 +0200] rev 50917
fastannotate: use sysstr to deal with some attributes We are now Python3 only and attribute are always unicode string. So no needs to managed them using bytes.
Fri, 01 Sep 2023 12:09:54 +0200 hgweb: use sysstr to set attribute on diff option
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 12:09:54 +0200] rev 50916
hgweb: use sysstr to set attribute on diff option Attribute identifier should be `str` not `bytes`.
Fri, 01 Sep 2023 11:57:38 +0200 hgweb: use sysstr to get attribute on diff option
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 11:57:38 +0200] rev 50915
hgweb: use sysstr to get attribute on diff option Attribute identifier should be `str` not `bytes`.
Thu, 31 Aug 2023 01:19:49 +0200 diff-option: move attributes handling to sysstr
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:19:49 +0200] rev 50914
diff-option: move attributes handling to sysstr Attributes are `str` and should be handled as such.
Fri, 01 Sep 2023 12:11:11 +0200 compression: use sysstr to specify attribute to fetch for priority
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 12:11:11 +0200] rev 50913
compression: use sysstr to specify attribute to fetch for priority These are attributes so they should be `str`.
Wed, 30 Aug 2023 00:45:10 +0200 smartset: set attribute using sysstr instead of bytes
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:45:10 +0200] rev 50912
smartset: set attribute using sysstr instead of bytes We do not needs bytes here.
Wed, 30 Aug 2023 11:53:13 +0200 cachedlocalrepo: use sysstr for attribute name of "file of interest"
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 11:53:13 +0200] rev 50911
cachedlocalrepo: use sysstr for attribute name of "file of interest" The first item is an attribute name, the second one is a filename. So the first one can (and should) be a `str`.
Wed, 30 Aug 2023 13:01:10 +0200 terse-status: use `sysstr` to specify attributes to set
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:01:10 +0200] rev 50910
terse-status: use `sysstr` to specify attributes to set We use unicode string to specify attribute and we add a explicit char for the other usage.
Wed, 30 Aug 2023 00:50:28 +0200 path-suboption: deprecated specifying the attributes as bytes
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:50:28 +0200] rev 50909
path-suboption: deprecated specifying the attributes as bytes The known suboptions have been updated, so we can deprecated passing bytes in case some extensions use them.
Wed, 30 Aug 2023 00:49:52 +0200 path-suboption: use str for "_pushloc" suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:49:52 +0200] rev 50908
path-suboption: use str for "_pushloc" suboptions That second argument refer to an attribute and do not needs to be bytes.
Wed, 30 Aug 2023 00:49:16 +0200 path-suboption: use str for "pushrev" suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:49:16 +0200] rev 50907
path-suboption: use str for "pushrev" suboptions That second argument refer to an attribute and do not needs to be bytes.
Wed, 30 Aug 2023 00:48:30 +0200 path-suboption: use str for "bookmarks_mode" suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:48:30 +0200] rev 50906
path-suboption: use str for "bookmarks_mode" suboptions That second argument refer to an attribute and do not needs to be bytes.
Wed, 30 Aug 2023 00:47:48 +0200 path-suboption: use str for "delta_reuse_policy" suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:47:48 +0200] rev 50905
path-suboption: use str for "delta_reuse_policy" suboptions That second argument refer to an attribute and do not needs to be bytes.
Wed, 30 Aug 2023 00:47:16 +0200 path-suboption: use str for "multi_urls" path suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:47:16 +0200] rev 50904
path-suboption: use str for "multi_urls" path suboptions That second argument refer to an attribute and do not needs to be bytes.
Fri, 01 Sep 2023 13:08:02 +0200 convert: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 13:08:02 +0200] rev 50903
convert: use sysstr to check for attribute presence We do not need bytes here.
Thu, 31 Aug 2023 16:57:16 +0200 mq: use sysstr to check for attribute access
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 16:57:16 +0200] rev 50902
mq: use sysstr to check for attribute access We do not need bytes here.
Wed, 30 Aug 2023 12:51:27 +0200 lfs: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:51:27 +0200] rev 50901
lfs: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 12:38:02 +0200 mq: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:38:02 +0200] rev 50900
mq: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 14:38:30 +0200 relink: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:38:30 +0200] rev 50899
relink: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 14:22:55 +0200 ui: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:22:55 +0200] rev 50898
ui: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 14:07:02 +0200 remotefilelog: use sysstr to access for attributes
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:07:02 +0200] rev 50897
remotefilelog: use sysstr to access for attributes We do not need bytes here.
Wed, 30 Aug 2023 13:28:09 +0200 hgwebmod: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:28:09 +0200] rev 50896
hgwebmod: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 13:07:00 +0200 remotefilelog: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:07:00 +0200] rev 50895
remotefilelog: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 13:02:43 +0200 extensions: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:02:43 +0200] rev 50894
extensions: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 13:00:14 +0200 bundle2: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:00:14 +0200] rev 50893
bundle2: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 13:32:45 +0200 largefile: use sysstr to check for attribute presence in `hgsubrepoarchive`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:32:45 +0200] rev 50892
largefile: use sysstr to check for attribute presence in `hgsubrepoarchive` We do not need bytes here.
Wed, 30 Aug 2023 12:03:11 +0200 largefile: use sysstr to check for attribute presence in `openstore`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:03:11 +0200] rev 50891
largefile: use sysstr to check for attribute presence in `openstore` We do not need bytes here.
Wed, 30 Aug 2023 12:01:37 +0200 largefile: use sysstr to check for attribute presence in `rebase` wrapping
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:01:37 +0200] rev 50890
largefile: use sysstr to check for attribute presence in `rebase` wrapping We do not need bytes here.
Wed, 30 Aug 2023 12:00:56 +0200 largefile: use sysstr to check for attribute presence in `getstatuswriter`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:00:56 +0200] rev 50889
largefile: use sysstr to check for attribute presence in `getstatuswriter` We do not need bytes here.
Wed, 30 Aug 2023 12:24:12 +0200 run-tests: detect HGWITHRUSTEXT value
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:24:12 +0200] rev 50888
run-tests: detect HGWITHRUSTEXT value Without this, some manual check in tests/test-dirstate.t could get confused by the lack of `rust` in module policy and break the test.
Tue, 29 Aug 2023 22:13:18 +0200 convert: stabilize subversion date sorter
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 29 Aug 2023 22:13:18 +0200] rev 50887
convert: stabilize subversion date sorter In case of tie, this provides unstable result on my system. So I am adding a couple of tie breaker to fix the test.
Thu, 31 Aug 2023 19:47:33 -0400 rhg: allow setting defaults.cmd to an empty string
Spencer Baugh <sbaugh@janestreet.com> [Thu, 31 Aug 2023 19:47:33 -0400] rev 50886
rhg: allow setting defaults.cmd to an empty string This is used by at least one hg UI to prevent defaults from affecting the command: https://github.com/emacs-mirror/emacs/blob/b71beb7ae7c60a5c5af608420d28fdda5265a264/lisp/vc/vc-hg.el#L245 Let's let it work.
Sun, 20 Aug 2023 17:19:33 -0400 uncommit: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:19:33 -0400] rev 50885
uncommit: migrate `opts` to native kwargs
Sun, 20 Aug 2023 17:16:38 -0400 split: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:16:38 -0400] rev 50884
split: migrate `opts` to native kwargs
Sun, 20 Aug 2023 17:09:33 -0400 releasenotes: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:09:33 -0400] rev 50883
releasenotes: migrate `opts` to native kwargs
Sun, 20 Aug 2023 17:05:52 -0400 narrow: hoist a variable to a higher level to avoid use-before-init warning
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:05:52 -0400] rev 50882
narrow: hoist a variable to a higher level to avoid use-before-init warning In practice, this shouldn't generate an IOError, so there wouldn't have been a problem. But PyCharm didn't know that.
Sun, 20 Aug 2023 17:04:17 -0400 narrow: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:04:17 -0400] rev 50881
narrow: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:51:49 -0400 largefiles: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:51:49 -0400] rev 50880
largefiles: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:43:41 -0400 keyword: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:43:41 -0400] rev 50879
keyword: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:20:56 -0400 gpg: use a context manager to write `.hgsigs`
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:20:56 -0400] rev 50878
gpg: use a context manager to write `.hgsigs`
Sun, 20 Aug 2023 16:19:41 -0400 gpg: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:19:41 -0400] rev 50877
gpg: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:10:22 -0400 fetch: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:10:22 -0400] rev 50876
fetch: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:06:08 -0400 fastexport: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:06:08 -0400] rev 50875
fastexport: migrate `opts` to native kwargs
Mon, 21 Aug 2023 09:50:31 -0400 closehead: wrap transaction handling in a context manager
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 09:50:31 -0400] rev 50874
closehead: wrap transaction handling in a context manager
(0) -30000 -10000 -3000 -1000 -240 +240 +1000 tip