Wed, 22 Feb 2023 18:09:12 +0100 transaction: tests we don't overwrite updates on abort stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 18:09:12 +0100] rev 50172
transaction: tests we don't overwrite updates on abort spoiler: we do… /o\
Wed, 22 Feb 2023 18:07:34 +0100 transaction: tests we don't overwrite branch changes on abort stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 18:07:34 +0100] rev 50171
transaction: tests we don't overwrite branch changes on abort We actually do not! Great. …Why are doing a backup of the `branch` files at transaction creation then‽
Wed, 22 Feb 2023 18:05:36 +0100 transaction: tests we don't overwrite tracking to changed file on abort stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 18:05:36 +0100] rev 50170
transaction: tests we don't overwrite tracking to changed file on abort spoiler: we do…
Wed, 22 Feb 2023 18:03:18 +0100 transaction: the base of a new test file checking transaction abort issue stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 18:03:18 +0100] rev 50169
transaction: the base of a new test file checking transaction abort issue See inline documentation for details. See other changesets for actual cases.
Wed, 22 Feb 2023 18:30:47 +0100 setup: support building from an ongoing merge stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 18:30:47 +0100] rev 50168
setup: support building from an ongoing merge Before this change the two parents from the merge would duplicate some command output and modify some others in a way python 3.11 chokes on.
Fri, 17 Feb 2023 16:48:11 +0000 rhg: in path_encode, simplify a bit more
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 17 Feb 2023 16:48:11 +0000] rev 50167
rhg: in path_encode, simplify a bit more Use the slices for `basename` and `ext` instead of dealing with offsets.
Fri, 17 Feb 2023 13:29:39 +0000 rhg: in path_encode, be a bit more conservative about memory usage
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 17 Feb 2023 13:29:39 +0000] rev 50166
rhg: in path_encode, be a bit more conservative about memory usage Use [shrink_to_fit] to match the previous behavior more closely, and potentially save (a tiny bit) of memory. FWIW, I suspect this is unnecessary, but this whole MR is about simplifying things while preserving any existing optimizations.
Thu, 16 Feb 2023 19:14:51 +0000 rhg: small refactor: stop using a magical constant "+ 1"
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 19:14:51 +0000] rev 50165
rhg: small refactor: stop using a magical constant "+ 1" Instead, directly do what the "+ 1" was supposed to achive: call hash_encode.
Thu, 16 Feb 2023 19:03:17 +0000 rhg: in path_encode, use Vec directly instead of VecDest
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 19:03:17 +0000] rev 50164
rhg: in path_encode, use Vec directly instead of VecDest No need to have a trivial wrapper over the type. There's nothing confusing about vec.write_bytes(...), after all.
Thu, 16 Feb 2023 19:00:56 +0000 rhg: in path_encode, split Dest into VecDest and MeasureDest
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 19:00:56 +0000] rev 50163
rhg: in path_encode, split Dest into VecDest and MeasureDest Two separate types make the write semantics easier to understand because we can consider the two sinks separately. Having two independent compiled functions for size measurement and for actual encoding seems likely to improve performance, too. (and maybe we should get rid of measurement altogether) Getting rid of [Dest] also removes the ugly option rewrapping code, which is good.
Thu, 16 Feb 2023 18:46:44 +0000 rhg: use generic DestArr in hash_mangle
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 18:46:44 +0000] rev 50162
rhg: use generic DestArr in hash_mangle This simplifies code a bit more, but comes with an extra memory copy in case [destlen == dest_vec.len()]. This is probably fine, but a follow-up change is removing that too.
Thu, 16 Feb 2023 18:45:23 +0000 rhg: in path_encode, make DestArr generic over its size
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 18:45:23 +0000] rev 50161
rhg: in path_encode, make DestArr generic over its size
Thu, 16 Feb 2023 18:41:06 +0000 rhg: in path_encode add a DestArr type
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 18:41:06 +0000] rev 50160
rhg: in path_encode add a DestArr type This is an implementation of Sink trait that writes into a fixed-size buffer on the stack, so identical to what was done before, but it makes the code of [hash_encode] easier to understand by dropping all these slice manipulations.
Thu, 16 Feb 2023 18:29:52 +0000 rhg: reduce verbosity in path_encode by using a trait for writing
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 18:29:52 +0000] rev 50159
rhg: reduce verbosity in path_encode by using a trait for writing Hopefully this makes the code easier to read and understand and shorter overall. It also lets us later tweak the type we use as a [Sink], without having to change the encoding functions, including using two different types for size measurement and for the actual serialization.
Thu, 16 Feb 2023 16:20:17 +0000 refactor: simplify code in rust version of path_encode
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 16:20:17 +0000] rev 50158
refactor: simplify code in rust version of path_encode Moving the addition of '/' separator to the end of the loop makes the rest of the logic much simpler because the first iteration is no longer special.
Mon, 20 Feb 2023 23:46:20 +0100 dirstate: phase-divergent update to 4e95341c89aa
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 23:46:20 +0100] rev 50157
dirstate: phase-divergent update to 4e95341c89aa Heptapod published the obsolete version of those.
Tue, 21 Feb 2023 22:25:20 +0100 dirstate: phase-divergent update to 65943224c184
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Feb 2023 22:25:20 +0100] rev 50156
dirstate: phase-divergent update to 65943224c184 Heptapod published the obsolete version of those.
Sun, 19 Feb 2023 03:21:12 +0100 dirstate: phase-divergent update to 3433723d1b9b
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 19 Feb 2023 03:21:12 +0100] rev 50155
dirstate: phase-divergent update to 3433723d1b9b Heptapod published the obsolete version of those.
Wed, 22 Feb 2023 03:42:36 +0100 dirstate: enforce change context for hacky_extension_update_file
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 03:42:36 +0100] rev 50154
dirstate: enforce change context for hacky_extension_update_file This was the last method not scoped yet
Wed, 22 Feb 2023 04:00:30 +0100 large-files: use a `changing_files` context when initializing the dirstate
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 04:00:30 +0100] rev 50153
large-files: use a `changing_files` context when initializing the dirstate We are obviously mutating the dirstate, so lets scope this mutation.
Wed, 22 Feb 2023 03:20:19 +0100 dirstate: enforce context set_clean and set_possibly_dirty
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 03:20:19 +0100] rev 50152
dirstate: enforce context set_clean and set_possibly_dirty We don't want them called within a `changing_parents` context, but we still want them called within a context. So we update the decorator accordingly
Wed, 22 Feb 2023 03:35:18 +0100 keyword: wrap dirstate mutation in `changing_files` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 03:35:18 +0100] rev 50151
keyword: wrap dirstate mutation in `changing_files` context This is the way.
Wed, 22 Feb 2023 03:34:48 +0100 keyword: wrap dirstate mutation in `changing_files` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 03:34:48 +0100] rev 50150
keyword: wrap dirstate mutation in `changing_files` context This is the way.
Tue, 21 Feb 2023 23:10:02 +0100 dirstate: enforce `running_status` context for calling `status`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Feb 2023 23:10:02 +0100] rev 50149
dirstate: enforce `running_status` context for calling `status` Now that the context is working as intended and that the callers are updated. We can enforce it.
Mon, 20 Feb 2023 17:13:29 +0100 dirstate: have `running_status` warn when exiting with a dirty dirstate
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 17:13:29 +0100] rev 50148
dirstate: have `running_status` warn when exiting with a dirty dirstate If running_status was started without the lock, all changes should have been explicitly written (with the lock) or invalidated before exiting the context.
Wed, 22 Feb 2023 02:21:27 +0100 dirstate: have `running_status` write the dirstate when holding the lock
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Feb 2023 02:21:27 +0100] rev 50147
dirstate: have `running_status` write the dirstate when holding the lock This is simple and harmless.
Mon, 20 Feb 2023 16:57:10 +0100 dirstate: check that dirstate is clean at the initial context opening
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Feb 2023 16:57:10 +0100] rev 50146
dirstate: check that dirstate is clean at the initial context opening More checking that we are not doing anything weird.
Tue, 21 Feb 2023 22:32:04 +0100 dirstate: start tracking that we are within a `running_status` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Feb 2023 22:32:04 +0100] rev 50145
dirstate: start tracking that we are within a `running_status` context
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 tip