mirror of
https://github.com/martinvonz/jj.git
synced 2024-12-28 23:55:54 +00:00
bb730d8a2b
The most annoying remaining bug is that 3-way merge frequently panics with "unhandled merge case". This commit fixes that by rewriting the merge code. The new code is based on the algorithm used in Mercurial (which was in turn copied from Bazaar): 1. Find "sync" regions, which are regions that are the unchanged in the base and two sides. Note their start end end positions in each version. 2. Produce the output by taking the sync regions and inserting the result of merging the regions between the sync regions. These regions can either be changed on only one side, in which case we use that version, or it can be changed on both sides, in which case we indicate a conflict in the output. It's both more correct and much easier to follow. |
||
---|---|---|
.. | ||
protos | ||
src | ||
tests | ||
build.rs | ||
Cargo.toml |