Mon, 15 May 2023 08:59:38 +0200 store: add a `target_id` attribute on RevlogStoreEntry
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:59:38 +0200] rev 50483
store: add a `target_id` attribute on RevlogStoreEntry This hold the "target" (file, directory, etc) of a revlog. Having this available will help a lot of code to avoid direct file path access.
Mon, 15 May 2023 08:59:22 +0200 store: actually tag tree manifest revlogs as manifest revlogs
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:59:22 +0200] rev 50482
store: actually tag tree manifest revlogs as manifest revlogs It turn out we have been mislabeling these for a long while. This is now fixed.
Mon, 15 May 2023 08:59:06 +0200 store: also gather files per revlog in `topfiles`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:59:06 +0200] rev 50481
store: also gather files per revlog in `topfiles` This conclude out revlog gathering.
Mon, 15 May 2023 08:58:49 +0200 store: also group files by revlog in fncache version of datafiles
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:58:49 +0200] rev 50480
store: also group files by revlog in fncache version of datafiles One more step.
Mon, 15 May 2023 08:58:33 +0200 store: add logic to group revlog file together
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:58:33 +0200] rev 50479
store: add logic to group revlog file together For now each file get its own entry, this will help stopping this, soon™. We use such gathering in the `basicstore` code.
Mon, 15 May 2023 08:58:16 +0200 store: change `_walk` return to `(filename, (type, size))`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:58:16 +0200] rev 50478
store: change `_walk` return to `(filename, (type, size))` If we are to group file per revlog, having the filename as the "main key" will be useful. This change will make the following changes clearer.
Mon, 15 May 2023 08:58:01 +0200 store: lazily get file size on demand for the fncache case
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:58:01 +0200] rev 50477
store: lazily get file size on demand for the fncache case We don't have the information in the first place, so we can avoid querying the file system inconditionnaly for use case we don't needs it. This change requires the StoreFile class to be passed a vfs to retrieve the file_size if needed. In the non-fncache case, we already have the information from file system walking, so we keep it and use it.
Mon, 15 May 2023 08:57:45 +0200 store: only access is_volatile information through the file object
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:57:45 +0200] rev 50476
store: only access is_volatile information through the file object This make sure other code only access this information through the proper API, and it prepare for store entries to be able to agregate multiple files.
Mon, 15 May 2023 08:57:30 +0200 store: only access file_size information through the file object
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:57:30 +0200] rev 50475
store: only access file_size information through the file object This make sure other code only access this information through the proper API, and it prepare for store entries to be able to agregate multiple files.
Mon, 15 May 2023 08:57:14 +0200 store: have custom init for entries class
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:57:14 +0200] rev 50474
store: have custom init for entries class This will get useful to add special processing later in this series.
Mon, 15 May 2023 08:56:56 +0200 store: use specialized class for store entries
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:56:56 +0200] rev 50473
store: use specialized class for store entries We introduce two different classes for revlog and other entries. For now, we still have multiple entry for the same revlog, but we will work toward grouping the different file in a single entry in this series. Having the distinction is a step toward this goal.
Mon, 15 May 2023 08:56:40 +0200 store: introduce a EntryFile object to actually access file info
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:56:40 +0200] rev 50472
store: introduce a EntryFile object to actually access file info For now a StoreEntry match a single file, but the goal is to eventually combine multiple file in a higher level Entry, so we need to introduce this distinction and use it first.
Mon, 15 May 2023 08:56:23 +0200 store: use a StoreEntry object instead of tuple for store files
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:56:23 +0200] rev 50471
store: use a StoreEntry object instead of tuple for store files We want to make the store return more semantic information instead of a stream of file path. To achieve this, we start with adding a simple object that hold the same information as the tuple it replace, and do a simple update to the user code to fetch and use the same information. From there, we will be able to iteratively upgrade the codebase toward better objects.
Mon, 15 May 2023 08:56:08 +0200 store: no longer explicitly mark the splitted index as ignored
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:56:08 +0200] rev 50470
store: no longer explicitly mark the splitted index as ignored Since the fncache is going to automatically recognised it as non "normal" revlog file, we don't need to explicitly make it ignored.
Mon, 15 May 2023 08:55:52 +0200 store: cleanup what is recognized as a revlog file
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:55:52 +0200] rev 50469
store: cleanup what is recognized as a revlog file The temporary file from `censor` are not relevant to the store as they are just temporary. So let `fncache` and `datafiles` forget about them.
Mon, 15 May 2023 08:55:34 +0200 store: only inclure revlog related file in `datafiles`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:55:34 +0200] rev 50468
store: only inclure revlog related file in `datafiles` This is a "reading" equivalent of the previous patches (see that patch for details).
Mon, 15 May 2023 08:55:19 +0200 store: do not record file that are not part of a revlog in fncache
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:55:19 +0200] rev 50467
store: do not record file that are not part of a revlog in fncache The fncache exist to list file to copy/stream when cloning a repository, it should only contains file that are relevant for a revlog in such case. For example, temporary file are not relevant. So we now skip the addiction of non-relevant file to the fn-cache in the first place.
Mon, 15 May 2023 08:55:02 +0200 revlog-split: expand the some test to cover the success case too
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:55:02 +0200] rev 50466
revlog-split: expand the some test to cover the success case too It seems useful to double check the case of a transaction successfully committed before trying the one with transaction abort.
Mon, 15 May 2023 08:54:47 +0200 transaction: use a ".bck" extension for all backup file
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:54:47 +0200] rev 50465
transaction: use a ".bck" extension for all backup file There are too much code in Mercurial that assume file function from extension. Keeping the original extension when doing backup is just creating confusion (for exemple, backup of revlog's confused with new version revlogs). So we change the backup name from now on to be explicilty backup file and prevent this kind of problem. (note that repository using fncache is less affected (but still affected) by this kind of problem as the backup are not listed in the fncache).
Mon, 15 May 2023 08:54:33 +0200 repair-issue6528: remove a now useless continue
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 May 2023 08:54:33 +0200] rev 50464
repair-issue6528: remove a now useless continue The condition for that continue have been excplicly filtered out of the `files` list a handful of line earlier.
Tue, 09 May 2023 11:35:50 +0200 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Tue, 09 May 2023 11:35:50 +0200] rev 50463
branching: merge stable into default
Fri, 28 Apr 2023 12:12:42 +0200 stabletailgraph: clarify omission of linear parts in test sorts
pacien <pacien.trangirard@pacien.net> [Fri, 28 Apr 2023 12:12:42 +0200] rev 50462
stabletailgraph: clarify omission of linear parts in test sorts Those are not interesting and are collapsed using globs. Only the tagged nodes are interesting.
Fri, 28 Apr 2023 11:50:49 +0200 stabletailgraph: omit uninteresting linear parts in test log
pacien <pacien.trangirard@pacien.net> [Fri, 28 Apr 2023 11:50:49 +0200] rev 50461
stabletailgraph: omit uninteresting linear parts in test log The test uses tags for the nodes of interest. There is no need to print the linear parts which exist only to force the rank.
Sun, 16 Apr 2023 22:49:42 +0200 stabletailgraph: fix typo in test
pacien <pacien.trangirard@pacien.net> [Sun, 16 Apr 2023 22:49:42 +0200] rev 50460
stabletailgraph: fix typo in test
Sun, 16 Apr 2023 22:17:30 +0200 stabletailgraph: fix terminology in doc
pacien <pacien.trangirard@pacien.net> [Sun, 16 Apr 2023 22:17:30 +0200] rev 50459
stabletailgraph: fix terminology in doc
Fri, 28 Apr 2023 16:28:43 +0200 perf: introduce a `perf::stream-locked-section` command
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 28 Apr 2023 16:28:43 +0200] rev 50458
perf: introduce a `perf::stream-locked-section` command This command benchmark the initial part of a stream clone, where the repository is locked.
Wed, 03 May 2023 18:17:32 -0300 transaction: tr._names are actually bytes, use byte string to join them
Anton Shestakov <av6@dwimlabs.net> [Wed, 03 May 2023 18:17:32 -0300] rev 50457
transaction: tr._names are actually bytes, use byte string to join them Looks like this is never checked in the tests? But trying e.g. `print(tr)` by hand before this change would give: TypeError: sequence item 0: expected str instance, bytes found Looks like tr._names are always bytes (although this isn't actually enforced, but maybe at some point it will at least be type checked e.g. by pytype).
Mon, 17 Apr 2023 00:27:46 +0200 nix: add nix-defined package and devel env (flake)
pacien <pacien.trangirard@pacien.net> [Mon, 17 Apr 2023 00:27:46 +0200] rev 50456
nix: add nix-defined package and devel env (flake) This adds a Nix Flake which defines: - package recipies to build and run Mercurial (C, C+Rust variants), - a meta package to run the test suite in an isolated sandbox, - a development environment with some tools (notably Python and the Black formatter, pinned to match the CI). Python is pinned to the recommended version. The Rust toolchain is a fairly recent one provided by the Nixpkgs channel. It is not yet pinned to the same version as the "reference" Debian package, but this does not seem to cause any issue. Example usage of local commands are provided in the `flake.nix` file. Once merged, it should also be possible to pull and run directly from the source repository directly with something like: `nix run hg+https://foss.heptapod.net/mercurial/mercurial-devel?ref=TOPIC&dir=contrib/nix' -- version`
Thu, 20 Apr 2023 16:55:19 +0200 hgignore: ignore nix result symlink
pacien <pacien.trangirard@pacien.net> [Thu, 20 Apr 2023 16:55:19 +0200] rev 50455
hgignore: ignore nix result symlink
Sun, 16 Apr 2023 23:48:24 +0200 tests: add test ignore list for nix
pacien <pacien.trangirard@pacien.net> [Sun, 16 Apr 2023 23:48:24 +0200] rev 50454
tests: add test ignore list for nix Some tests cannot run properly in the nix sandbox. This adds a list of tests to ignore when running in that context.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 tip