I found this [0] to be a very readable presentation of the theory behind Pijul. Key point is that by representing state as an "DAG of lines" instead of as an "ordered list of lines" (i.e. a file), you are always able to do perfect merges.
You then need a "flattening" step to get to a normal file, but that is handled same as any other patch.
All in all, I am a tempted to give this a try -- even though the mental model will require some mental rewiring.
> the mental model will require some mental rewiring
One must be pretty brave to admit that. Even though I'm a big user of Git (and a co-author of Pijul), I agree that you'll probably need to unlearn a number of things. But you won't need to relearn so much, the patch model is really more intuitive in many cases.
All in all, I am a tempted to give this a try -- even though the mental model will require some mental rewiring.
[0]: https://jneem.github.io/merging/