The theory is entirely implemented!

After delaying this moment until most bugs were ironed out, I’ve finally been forced to implement the last missing piece: rollback, a command to produce the inverse of a patch. The resulting patch is not exactly an inverse (because the graph has to be different, since it has to preserve a trace of the patch that has been rolled back), but the effects on the working copy are the same as an inverse.

The initial goal was to increase the test coverage of unrecord, but this side-goal (which actually only took a few dozens of lines, after the simplifications from Pijul 0.9) made me really happy, so I wanted to share the happiness.

ps: and no, all the bugs are not ironed out, I’ve found new ones while trying to increase the coverage.

8 Likes