Wed, 22 Feb 2023 00:53:51 +0100 dirstate: use `cachestat` object for dirstatemap identity
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 00:53:51 +0100] rev 50125
dirstate: use `cachestat` object for dirstatemap identity There is a class dedicated to this kind of cache check, let us use it. We will generalize this code in the next changesets, but we do the "behavior changing" pass on our own.
Tue, 21 Feb 2023 22:17:33 +0100 automv: lock the repository before searching for renames
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Feb 2023 22:17:33 +0100] rev 50124
automv: lock the repository before searching for renames I detected this while debugging something else.
Mon, 20 Feb 2023 23:46:20 +0100 dirstate: distinct transaction callback from largefile
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 23:46:20 +0100] rev 50123
dirstate: distinct transaction callback from largefile This has not caused any issue so far because the large-files dirstate bypass the transaction logic. We might want to change that. In anyway, let us disarm this bug nest before it actually explode.
Mon, 20 Feb 2023 16:31:36 +0100 dirstate: track that changes are pending in a transaction
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 16:31:36 +0100] rev 50122
dirstate: track that changes are pending in a transaction Nothing is currently broken because if this, but this make the `_invalidated_context` attribute more accurate. Being more accurate here will help us later, when dealing with `status` call.
Tue, 21 Feb 2023 17:43:43 +0100 dirstate: add small asserts for double security
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Feb 2023 17:43:43 +0100] rev 50121
dirstate: add small asserts for double security We don't need this, but it does not hurt.
Mon, 20 Feb 2023 15:58:17 +0100 dirstate: simplify the invalidation management on context exit
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 15:58:17 +0100] rev 50120
dirstate: simplify the invalidation management on context exit Since the `invalidate` call will directly reset the `_invalidated_context` attribut, we can simplify the code. In the same go, we move most of the logic out of the `finally` clause. It seems cleaner and safer. If we are handling an exception, we don't need the `write` code anyway.
Mon, 20 Feb 2023 15:52:55 +0100 dirstate: use the new `check_invalidated` decorator for `_changing`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 15:52:55 +0100] rev 50119
dirstate: use the new `check_invalidated` decorator for `_changing` WeeeEEeee, less code.
Tue, 21 Feb 2023 22:25:20 +0100 dirstate: introduce a check_invalidated decorator
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Feb 2023 22:25:20 +0100] rev 50118
dirstate: introduce a check_invalidated decorator This is a common need, so let us consolidate it to simplify the code.
Sun, 19 Feb 2023 03:21:12 +0100 dirstate: warn if dirty when starting an edition
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 19 Feb 2023 03:21:12 +0100] rev 50117
dirstate: warn if dirty when starting an edition The dirstate should be clean before we start changing it. Otherwise we might write unrelated changes. Having a dirty dirstate laying around is also suspicious. This is similar to what we do when opening a new transaction, but this time this affect dirstate changes outside of a transaction.
Tue, 21 Feb 2023 03:22:51 +0100 large-files: make sure we write newly initialized standin file early
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Feb 2023 03:22:51 +0100] rev 50116
large-files: make sure we write newly initialized standin file early Any changing context will have to initialized it before anything else. Not flushing the default (pre-change) content mean we would enter the changing context with a dirty dirstate, which is odd.
Mon, 20 Feb 2023 14:06:15 +0100 dirstate: mark `clear` and `rebuild` as `require_changing_parents`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 14:06:15 +0100] rev 50115
dirstate: mark `clear` and `rebuild` as `require_changing_parents` Yeah, more scoping!
Mon, 20 Feb 2023 11:37:02 +0100 dirstate: add a comment about the semantic of `dirstate.clear`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 11:37:02 +0100] rev 50114
dirstate: add a comment about the semantic of `dirstate.clear` This method is weird, lets flag it as such.
Mon, 20 Feb 2023 14:05:19 +0100 debugrebuildstate: wrap the operation in a `changing_parents` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 14:05:19 +0100] rev 50113
debugrebuildstate: wrap the operation in a `changing_parents` context This ismaybe a "changing_files" case? However this would be the only usage of `rebuild` outside a `changing_parents` context and this is a debug command, so lets not make the code base more complex because of that one command.
Sun, 19 Feb 2023 02:50:46 +0100 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 19 Feb 2023 02:50:46 +0100] rev 50112
strip: use a `changing_parents` context for --keep update These are now properly scoped. note: it would be neat to reuse this in `hg rollback`.
(0) -30000 -10000 -3000 -1000 -300 -100 -14 +14 +100 +300 +1000 tip