Monday, October 28, 2019

Playing With Pijul

I tried pijul out a while back, I can't remember how long exactly, and it was not ready for prime time. Today I tried it out again and I have to say, it feels pretty polished. I have a couple problems though.

One is, how do I un-apply patches? What I really want is the git equivalent of doing a git checkout  to go to an older revision (and from there build and test, or even just look around at the files). You could do a series of pijul unrecord and keep answering yes to all the patches you want to remove, and then do a pijul revert but that seems tedious and weird. I don't want to delete the patches, I just want to un-apply them for a bit. Is that possible?

The other problem I have is similar to this one. pijul promises better cherry picking than git, since it just records patches not snapshots of the repo. However, it has no cherry-pick command. It does have a patch command and an apply command that I've been trying to use to manually cherry-pick, but it's not working. For example, if I make 3 simple changes to a file (add three new lines, one after another), and record a patch for each change, is there a way to cherry pick a patch from the middle? It seems not because no matter what I try it complains that the patch in the middle is missing a dependency. I can't cherry pick just the first and third patches either. I can't even do it manually by creating traditional patches and using patch(1) because pijul doesn't output diffs/patches in normal pactch/diff format.

I feel like maybe I'm missing something here.

1 comment:

Yufan Lou said...

I don't think you have missed anything here. pijul centers around the concept of patches, which is almost exactly like turning git inside out. So what currently looks like user facing operations for git is more like pijul porcelain, and many user-friendly operations are yet to be built on top.