jj/lib
Martin von Zweigbergk f4499aa65e conflicts: fix bug when modifying modify/delete conflicts
Currently, if the user modifies a modify/delete conflict, we always
consider the result resolved. That happens because we materialize the
missing side of the conflict as an empty string but when we parse the
conflict, we expect only the number of sides in the input
conflict. For example, if the input is a regular modify/delete
conflict with one remove and one add, the materialized markers will
have one remove and two adds (one of them empty), but when we try to
parse it, we expect one remove and only one add. When we fail to parse
it, we consider it resolved.

This commit fixes the bug by using
`conflicts::Conflict<Option<TreeValue>>` and keeping track of which
sides were supposed to be empty. We could have fixed the bug without
switching to `conflicts::Conflict`, but we want to switch anyway, and
the fix happens naturally when switching.
2023-06-04 06:48:34 -07:00
..
benches benches: group unchanged/modified/reversed-line diffs together 2023-03-27 23:38:56 +09:00
gen-protos cargo: bump prost-build from 0.11.8 to 0.11.9 2023-04-14 16:11:09 +00:00
src conflicts: fix bug when modifying modify/delete conflicts 2023-06-04 06:48:34 -07:00
tests conflicts: fix bug when modifying modify/delete conflicts 2023-06-04 06:48:34 -07:00
testutils cargo: bump git2 from 0.17.1 to 0.17.2 2023-05-29 20:25:04 +02:00
build.rs lib: replace protobuf crate with prost 2022-12-22 07:04:35 -08:00
Cargo.toml cargo: bump criterion from 0.4.0 to 0.5.1 2023-06-01 09:20:14 -07:00