Description
jj prune
, like most commands, first commit the working copy. When using the Git backend, that produces a Git commit with some hash. The next step for jj prune
is to prune the commit. That's done by creating a successor commit with a is_pruned
flag set. The problem is that both the predecessors
field and the is_pruned
field are stored outside of the Git commit and the timestamps are typically the same as well (it happens in much less than a second), so the resulting Git commit remains the same. The Git backend then fails the write (it doesn't allow two Git commits with different non-Git metadata).
I've known about this bug for a long time, but I figured it can be useful to track it. I'm working on removing support for evolution. The bug should be resolved by that work.