Do you think you can provide a script to reproduce? This shouldn’t happen, Pijul was designed to avoid our frustration when reverting/resetting/unrecording conflicting states with Darcs and Git.
Well the good news there is that I came to Pijul because this same source caused Darcs to corrupt itself when applying the patches.
I’ll try and recreate the issue but the essence is multiple “cherry-picked” patches in both directions between two branches where the patches were sometimes edited slightly during the “picking” (due to them originating from a Subversion repo).
Another thing you can do is send me a tarball of your .pijul, that would be very helpful. Btw, is this something you tried with Pijul 0.11 only, is this older, or a mix?
The Pijul repo was created using my fork of git-pijul which was built against a recent pre-0.11 version. So one thing will be to update that to the released libpijul and reconvert.
Otherwise I’ll try and reproduce it with a small example because the problematic db is over 1Gb.
Well I’ve not been able to reproduce this in 0.11 using the problem file and patches and manually copying the changes over to a clean 0.11 created repo.
I think the latest conflict fixes may be what I need as I managed to corrupt another clone of the problem repo by pulling from only one of the branches which suggests that the existing patches are the issue.
Great news. There was a pretty nasty bug in the code that output files, mostly for conflicts. The algorithm was completely wrong, rested on wrong assumptions and did not do the right thing at all. I’m even surprised it passed the tests, but that was probably because repositories are cleaned after every patch application in the tests.