Closed PhilipMetzger closed 1 month ago
We've discussed this thoroughly in Discord and Martin recognized that this can happen when intermediate conflicts aren't resolved and any further command auto-squashes the still unfinished resolution.
We still shouldn't fail on an assertion but the immediate action to warn on incomplete resolutions should prevent anyone else hitting it.
Does resolving all conflicts in the working copy fix the panic? I'm trying to figure out how to recover from this state.
EDIT: It does fix the panic!
Also just balancing the conflicts to not hit the assertion also helps.
Description
This happened at
$WORK
, so this is a recollection. This happened while resolving another large conflict (8-sided if I remember correctly). It would be nice if we didn't panic during merge-tree creation, as it rendersjj st
and other commands useless.Steps to Reproduce the Problem
jj st
to see if we have pending conflicts to solve.Expected Behavior
jj log
orjj st
don't panic.Actual Behavior
We hit an assertion in
lib/src/merge.rs
, which expects an even amount of adds and an odd amount of removes.Specifications