Mon, 19 Jul 2021 14:02:58 +0200 dirstate: enforce `possibly_dirty` in `set_tracked`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 14:02:58 +0200] rev 47731
dirstate: enforce `possibly_dirty` in `set_tracked` There is some usecase (like `hg revert`) that requires more agressive `possibly_dirty` setting. So we take a safe path and enforce it in one of the main `normallookup` replacement. Differential Revision: https://phab.mercurial-scm.org/D11173
Mon, 19 Jul 2021 01:17:56 +0200 record: use `update_file` instead of `normallookup`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 01:17:56 +0200] rev 47730
record: use `update_file` instead of `normallookup` We are cheating a bit to enforce we are in a pending change context. This will have to be cleaned up later. The end goal is reached, we are now using the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11172
Mon, 19 Jul 2021 05:43:43 +0200 copy: use `set_tracked` instead of `normallookup` in `dirstatecopy`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 05:43:43 +0200] rev 47729
copy: use `set_tracked` instead of `normallookup` in `dirstatecopy` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11171
Mon, 19 Jul 2021 01:18:23 +0200 amend: use `update_file` instead of `normallookup`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 01:18:23 +0200] rev 47728
amend: use `update_file` instead of `normallookup` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11170
Mon, 19 Jul 2021 05:45:22 +0200 mergestate: use `update_file` to handle for `ACTION_EXEC`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 05:45:22 +0200] rev 47727
mergestate: use `update_file` to handle for `ACTION_EXEC` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11169
Mon, 19 Jul 2021 05:44:57 +0200 mergestate: use `update_file` to handle for `ACTION_ADD_MODIFIED`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 05:44:57 +0200] rev 47726
mergestate: use `update_file` to handle for `ACTION_ADD_MODIFIED` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11168
Mon, 19 Jul 2021 05:47:54 +0200 largefile: use `update_file` for `synclfdirstate` "m" case
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 05:47:54 +0200] rev 47725
largefile: use `update_file` for `synclfdirstate` "m" case This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11167
Mon, 19 Jul 2021 05:47:33 +0200 largefile: use `update_file` for `synclfdirstate` "n" case
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 05:47:33 +0200] rev 47724
largefile: use `update_file` for `synclfdirstate` "n" case This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11166
Mon, 19 Jul 2021 02:44:11 +0200 largefile: replace the `normallookup` call when creating a new lfdirstate
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 02:44:11 +0200] rev 47723
largefile: replace the `normallookup` call when creating a new lfdirstate This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11165
Mon, 19 Jul 2021 05:46:16 +0200 largefile: use `update_file` instead of `normallookup` in `updatelfiles`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 05:46:16 +0200] rev 47722
largefile: use `update_file` instead of `normallookup` in `updatelfiles` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11164
Sun, 18 Jul 2021 23:43:08 +0200 largefile: use `set_possibly_dirty` instead of `normallookup`
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 18 Jul 2021 23:43:08 +0200] rev 47721
largefile: use `set_possibly_dirty` instead of `normallookup` Differential Revision: https://phab.mercurial-scm.org/D11163
Sun, 18 Jul 2021 23:42:22 +0200 dirstate: add a `set_possibly_dirty` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 18 Jul 2021 23:42:22 +0200] rev 47720
dirstate: add a `set_possibly_dirty` method This method will be able to replace some usage of `normallookup` in the future. Differential Revision: https://phab.mercurial-scm.org/D11162
Mon, 19 Jul 2021 00:29:36 +0200 dirstate: deprecate the `normal` method in all cases
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 00:29:36 +0200] rev 47719
dirstate: deprecate the `normal` method in all cases All code have been migrated to the new APIs. Differential Revision: https://phab.mercurial-scm.org/D11161
Mon, 19 Jul 2021 06:44:08 +0200 test: use `set_tracked` in `test-context`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 06:44:08 +0200] rev 47718
test: use `set_tracked` in `test-context` This is apparently the last user of the old API. Differential Revision: https://phab.mercurial-scm.org/D11160
Sun, 18 Jul 2021 22:49:26 +0200 mq: replace usage of `normal` with newer API
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 18 Jul 2021 22:49:26 +0200] rev 47717
mq: replace usage of `normal` with newer API Differential Revision: https://phab.mercurial-scm.org/D11159
Mon, 19 Jul 2021 02:46:09 +0200 largefile: use `update_file` instead of `normal` in `synclfdirstate`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 02:46:09 +0200] rev 47716
largefile: use `update_file` instead of `normal` in `synclfdirstate` This is the newer, more semantic API. This was the last call to `normal` in largefile. Differential Revision: https://phab.mercurial-scm.org/D11158
Mon, 19 Jul 2021 02:40:51 +0200 largefile: use `set_clean` instead of `normal` in `repo.status`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 02:40:51 +0200] rev 47715
largefile: use `set_clean` instead of `normal` in `repo.status` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11157
Mon, 19 Jul 2021 02:39:35 +0200 largefile: use `set_clean` instead of `normal` in `lfdirstatestatus`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 02:39:35 +0200] rev 47714
largefile: use `set_clean` instead of `normal` in `lfdirstatestatus` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11156
Mon, 19 Jul 2021 02:39:01 +0200 largefile: use `update_file` instead of `normal` in `updatelfiles`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 02:39:01 +0200] rev 47713
largefile: use `update_file` instead of `normal` in `updatelfiles` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11155
Mon, 19 Jul 2021 02:38:40 +0200 largefile: respect the `normal` signature
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 02:38:40 +0200] rev 47712
largefile: respect the `normal` signature The `parentfiledata` parameter was missing, we throw it away because I am not sure what to do with it in the largefile case. Differential Revision: https://phab.mercurial-scm.org/D11154
Mon, 19 Jul 2021 02:05:24 +0200 keyword: use `set_clean` instead of `normal`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 02:05:24 +0200] rev 47711
keyword: use `set_clean` instead of `normal` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11153
Mon, 19 Jul 2021 01:58:34 +0200 sparse: use `update_file` instead of `normal` in `refreshwdir`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 01:58:34 +0200] rev 47710
sparse: use `update_file` instead of `normal` in `refreshwdir` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11152
Mon, 19 Jul 2021 01:58:24 +0200 sparse: use `update_file` instead of `normal` during `applyupdates`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 01:58:24 +0200] rev 47709
sparse: use `update_file` instead of `normal` during `applyupdates` This is the newer, more semantic API. (more content end up "nonnormal", see previous commit) Differential Revision: https://phab.mercurial-scm.org/D11151
Mon, 19 Jul 2021 04:26:06 +0200 sparse: apply update with in a `parentchange` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 04:26:06 +0200] rev 47708
sparse: apply update with in a `parentchange` context We are changing the reference so we should be within such context manager. This seems make the actual dirstate content a bit flaky with content being sometime ambigous (but maybe it was flaky before?) So I increased the matching. Differential Revision: https://phab.mercurial-scm.org/D11150
Mon, 19 Jul 2021 03:52:20 +0200 revert: use `set_clean` instead of `normal`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 03:52:20 +0200] rev 47707
revert: use `set_clean` instead of `normal` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11149
Mon, 19 Jul 2021 03:15:57 +0200 context: use `update_file` instead of `normal` in `markcommitted`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 03:15:57 +0200] rev 47706
context: use `update_file` instead of `normal` in `markcommitted` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11148
Mon, 19 Jul 2021 01:44:24 +0200 context: use new API instead of `normal` during fixup post status
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 01:44:24 +0200] rev 47705
context: use new API instead of `normal` during fixup post status We use `set_clean` or `update_file` depending of if we are in the middle of an update or not. Differential Revision: https://phab.mercurial-scm.org/D11147
Mon, 19 Jul 2021 00:47:59 +0200 dirstate: introduce a `set_clean` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 00:47:59 +0200] rev 47704
dirstate: introduce a `set_clean` method This will provide a good alternative to `normal` call with a narrower semantic. Differential Revision: https://phab.mercurial-scm.org/D11146
Mon, 19 Jul 2021 00:04:24 +0200 largefile: use `update_file` instead of `normal`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 00:04:24 +0200] rev 47703
largefile: use `update_file` instead of `normal` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11145
Mon, 19 Jul 2021 00:05:47 +0200 largefile: adjust the dirstate post update within a `parentchange` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 00:05:47 +0200] rev 47702
largefile: adjust the dirstate post update within a `parentchange` context This is doing an update, so this seems more appropriate. No other change have been made, but the next changeset will :-) Differential Revision: https://phab.mercurial-scm.org/D11144
Fri, 16 Jul 2021 14:06:32 +0200 dirstate: deprecate `dirstate.remove` in all cases
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 14:06:32 +0200] rev 47701
dirstate: deprecate `dirstate.remove` in all cases This will make sure that code will use the newer, more semantic API sooner than later. Differential Revision: https://phab.mercurial-scm.org/D11143
Mon, 19 Jul 2021 03:20:28 +0200 largefile: use `update_file` instead of `remove` in `synclfdirstate`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 03:20:28 +0200] rev 47700
largefile: use `update_file` instead of `remove` in `synclfdirstate` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11142
Mon, 19 Jul 2021 03:25:21 +0200 largefile: rearrange conditionnal in `synclfdirstate`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 03:25:21 +0200] rev 47699
largefile: rearrange conditionnal in `synclfdirstate` We can liquidate the special case early, so do we. Differential Revision: https://phab.mercurial-scm.org/D11141
Mon, 19 Jul 2021 03:20:04 +0200 largefile: use `update_file` instead of `remove` in `mergerecordupdates`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 03:20:04 +0200] rev 47698
largefile: use `update_file` instead of `remove` in `mergerecordupdates` This is the newer, more semantic API. Differential Revision: https://phab.mercurial-scm.org/D11140
Sat, 17 Jul 2021 00:15:31 +0200 mq: use `update_file_p1` instead of `remove` when adjusting dirstate
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jul 2021 00:15:31 +0200] rev 47697
mq: use `update_file_p1` instead of `remove` when adjusting dirstate This is the new API. Differential Revision: https://phab.mercurial-scm.org/D11139
Mon, 19 Jul 2021 04:43:28 +0200 dirstate: properly update `_lastnormaltime` in `update_file_p1`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 04:43:28 +0200] rev 47696
dirstate: properly update `_lastnormaltime` in `update_file_p1` This was previously overlooked. Differential Revision: https://phab.mercurial-scm.org/D11138
Mon, 19 Jul 2021 04:43:14 +0200 dirstate: properly update `_lastnormaltime` in `update_file`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 04:43:14 +0200] rev 47695
dirstate: properly update `_lastnormaltime` in `update_file` This was previously overlooked. Differential Revision: https://phab.mercurial-scm.org/D11137
Thu, 15 Jul 2021 04:55:57 +0200 dirstate: use `reset_state` in `update_file_p1`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jul 2021 04:55:57 +0200] rev 47694
dirstate: use `reset_state` in `update_file_p1` Going through the same API is more consistent and allow us to push implementation lower down the call stack. Differential Revision: https://phab.mercurial-scm.org/D11136
Thu, 15 Jul 2021 04:34:51 +0200 dirstate: rename `update_file_reference` to `update_file_p1`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jul 2021 04:34:51 +0200] rev 47693
dirstate: rename `update_file_reference` to `update_file_p1` This is a bit clearer on the intended usage of the function. (but still not great) Differential Revision: https://phab.mercurial-scm.org/D11135
Mon, 19 Jul 2021 07:23:55 +0200 dirstate-map: move most of `dirstate.update_file` logic in the dsmap
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jul 2021 07:23:55 +0200] rev 47692
dirstate-map: move most of `dirstate.update_file` logic in the dsmap A new `reset_state` method is introduced to deal with most of that logic. This move things one layer lower, but the ultimate goal is to deal with most of this at the DirstateItem level. This reveal various imperfection with the data passed to update_file by `mergestate.recordupdates`, however this is orthogonal to this patch and should be dealt with at a higher level. Differential Revision: https://phab.mercurial-scm.org/D11134
Fri, 16 Jul 2021 22:30:11 +0200 dirstate: replace `update_parent_file_data` with simpler `update_parent` call
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 22:30:11 +0200] rev 47691
dirstate: replace `update_parent_file_data` with simpler `update_parent` call This make the dirstate API simpler. Differential Revision: https://phab.mercurial-scm.org/D11133
Fri, 16 Jul 2021 15:07:16 +0200 dirstate: factor out the part retrieve "filedata" out of `normal`
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 15:07:16 +0200] rev 47690
dirstate: factor out the part retrieve "filedata" out of `normal` We will need them elsewhere. Differential Revision: https://phab.mercurial-scm.org/D11132
Thu, 15 Jul 2021 02:19:41 +0200 dirstate-map: factor out the change to _dirs and _alldirs on removing
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jul 2021 02:19:41 +0200] rev 47689
dirstate-map: factor out the change to _dirs and _alldirs on removing This logic is complicated enough to deserves its own function. So it now does. This will make it easier to reuse that logic in later changeset. Differential Revision: https://phab.mercurial-scm.org/D11131
Thu, 15 Jul 2021 01:58:50 +0200 dirstate-map: factor out the change to _dirs and _alldirs on dropping
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jul 2021 01:58:50 +0200] rev 47688
dirstate-map: factor out the change to _dirs and _alldirs on dropping This logic is complicated enough to deserves its own function. So it now does. This will make it easier to reuse that logic in later changeset. Differential Revision: https://phab.mercurial-scm.org/D11130
Thu, 15 Jul 2021 01:58:31 +0200 dirstate-map: factor out the change to _dirs and _alldirs on adding
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jul 2021 01:58:31 +0200] rev 47687
dirstate-map: factor out the change to _dirs and _alldirs on adding This logic is complicated enough to deserves its own function. So it now does. This will make it easier to reuse that logic in later changeset. Differential Revision: https://phab.mercurial-scm.org/D11129
Wed, 14 Jul 2021 22:06:13 +0200 dirstate-item: introduce a `dm_otherparent` property
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Jul 2021 22:06:13 +0200] rev 47686
dirstate-item: introduce a `dm_otherparent` property See inline documentation for details. Differential Revision: https://phab.mercurial-scm.org/D11124
Wed, 14 Jul 2021 21:59:18 +0200 dirstate-item: introduce a `dm_nonnormal` property
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Jul 2021 21:59:18 +0200] rev 47685
dirstate-item: introduce a `dm_nonnormal` property See inline documentation for details. Differential Revision: https://phab.mercurial-scm.org/D11123
Fri, 16 Jul 2021 16:19:31 +0200 dirstate-v2: Reserve a few bytes of space for future extensions
Simon Sapin <simon.sapin@octobus.net> [Fri, 16 Jul 2021 16:19:31 +0200] rev 47684
dirstate-v2: Reserve a few bytes of space for future extensions See doc-comment Differential Revision: https://phab.mercurial-scm.org/D11101
Fri, 16 Jul 2021 14:08:26 +0200 dirstate-v2: Separate iterators for dirfoldmap and debugdirstate
Simon Sapin <simon.sapin@octobus.net> [Fri, 16 Jul 2021 14:08:26 +0200] rev 47683
dirstate-v2: Separate iterators for dirfoldmap and debugdirstate `dirstatemap.dirfoldmap` was recently changed to re-use a Rust iterator that was added for the `hg debugdirstate` command. That iterator was based on all nodes in the tree dirstate without an entry only existing to hold child nodes, and therefore being directories. However to optimize status further we may want to store additional nodes for unknown or ignored files and directories. At that point the two users of this iterator will want different things, so let’s make two iterators instead. See doc-comments in `dispatch.rs`. Differential Revision: https://phab.mercurial-scm.org/D11099
Thu, 15 Jul 2021 23:02:17 +0200 dirstate-v2: Move fixed-size tree metadata into the docket file
Simon Sapin <simon.sapin@octobus.net> [Thu, 15 Jul 2021 23:02:17 +0200] rev 47682
dirstate-v2: Move fixed-size tree metadata into the docket file Before this changeset, the dirstate-v2 data file contained not only nodes and paths that may be reused when appending to an existing file, but also some fixed-size metadata that applies to the entire tree and was added at the end of the data file for every append. This moves that metadata into the docket file, so that repeated "append" operations without meaningful changes don’t actually need to grow any file. Differential Revision: https://phab.mercurial-scm.org/D11098
Thu, 08 Jul 2021 19:23:44 +0200 dirstate-v2: Add heuristic for when to create a new data file
Simon Sapin <simon.sapin@octobus.net> [Thu, 08 Jul 2021 19:23:44 +0200] rev 47681
dirstate-v2: Add heuristic for when to create a new data file … instead of appending to the existing one. This is based on keeping track of how much of the existing data is not used anymore. Differential Revision: https://phab.mercurial-scm.org/D11097
Thu, 15 Jul 2021 10:31:43 +0200 dirstate-v2: Reuse existing paths when appending to a data file
Simon Sapin <simon.sapin@octobus.net> [Thu, 15 Jul 2021 10:31:43 +0200] rev 47680
dirstate-v2: Reuse existing paths when appending to a data file When writing a dirstate in v2 format by appending to an existing data file, filenames / paths that are borrowed from the previous on-disk representation can be reused. Differential Revision: https://phab.mercurial-scm.org/D11096
Thu, 15 Jul 2021 08:53:03 +0200 dirstate-v2: Reuse existing nodes when appending to a data file
Simon Sapin <simon.sapin@octobus.net> [Thu, 15 Jul 2021 08:53:03 +0200] rev 47679
dirstate-v2: Reuse existing nodes when appending to a data file When writing a dirstate in v2 format by appending to an existing data file, nodes that are still "unparsed" from the previous on-disk representation have been unchanged and can therefore be reused. This makes the new data point to previously-existing data for tree nodes. Differential Revision: https://phab.mercurial-scm.org/D11095
Tue, 13 Jul 2021 17:18:23 +0200 dirstate-v2: Support appending to the same data file
Simon Sapin <simon.sapin@octobus.net> [Tue, 13 Jul 2021 17:18:23 +0200] rev 47678
dirstate-v2: Support appending to the same data file For now we’re still writing the entire data every time, so appending is not useful yet. Later we’ll have new nodes pointing to some existing data for nodes and paths that haven’t changed. The decision whether to append is pseudo-random in order to make tests exercise both code paths. This will be replaced by a heuristic based on the amount of unused existing data. Differential Revision: https://phab.mercurial-scm.org/D11094
Tue, 13 Jul 2021 09:44:44 +0200 dirstate-v2: shrink on-disk path lengths to 16-bits
Simon Sapin <simon.sapin@octobus.net> [Tue, 13 Jul 2021 09:44:44 +0200] rev 47677
dirstate-v2: shrink on-disk path lengths to 16-bits Differential Revision: https://phab.mercurial-scm.org/D11091
Mon, 12 Jul 2021 23:05:56 +0200 dirstate-v2: Rename Header to Root, move it to the end of the data file
Simon Sapin <simon.sapin@octobus.net> [Mon, 12 Jul 2021 23:05:56 +0200] rev 47676
dirstate-v2: Rename Header to Root, move it to the end of the data file Now that they don’t have to be at the start, a given data file may contain multiple "roots". A docket only points to one of them, and previous ones are left unused to allow allow append-only in-place writing to an existing data file. Differential Revision: https://phab.mercurial-scm.org/D11090
Mon, 12 Jul 2021 22:46:52 +0200 dirstate-v2: Enforce data size read from the docket file
Simon Sapin <simon.sapin@octobus.net> [Mon, 12 Jul 2021 22:46:52 +0200] rev 47675
dirstate-v2: Enforce data size read from the docket file The data file may not be shorter than its size given by the docket. It may be longer, but additional data is ignored. Differential Revision: https://phab.mercurial-scm.org/D11089
Thu, 08 Jul 2021 12:18:21 +0200 dirstate-v2: Introduce a docket file
Simon Sapin <simon.sapin@octobus.net> [Thu, 08 Jul 2021 12:18:21 +0200] rev 47674
dirstate-v2: Introduce a docket file .hg/dirstate now only contains some metadata to point to a separate data file named .hg/dirstate.{}.d with a random hexadecimal identifier. For now every update creates a new data file and removes the old one, but later we’ll (usually) append to an existing file. Separating into two files allows doing the "write to a temporary file then atomically rename into destination" dance with only a small docket file, without always rewriting a lot of data. Differential Revision: https://phab.mercurial-scm.org/D11088
Thu, 15 Jul 2021 17:24:09 +0200 dirstate: replace a dead conditional branch with an assert in `update_file`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jul 2021 17:24:09 +0200] rev 47673
dirstate: replace a dead conditional branch with an assert in `update_file` This is a case we never meet, so lets trim it away to simplify the code before more changes. Differential Revision: https://phab.mercurial-scm.org/D11128
Wed, 14 Jul 2021 23:32:35 +0200 dirstate-map: do not use `size` to gate copy dropping during remove_file
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Jul 2021 23:32:35 +0200] rev 47672
dirstate-map: do not use `size` to gate copy dropping during remove_file This get us close to moving the block right above withing the DirstateItem object. Doing so will help us getting rid of magic constant at the dirstatemap level. Differential Revision: https://phab.mercurial-scm.org/D11127
(0) -30000 -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 tip