Branches, signing keys, and version controlling my home dir

Hi all,

I’ve written up some thoughts on Pijul on my blog. There are a few places the docs aren’t clear, as I mention towards the end of my post.

First, how exactly do branches work at the moment? There are some threads in this forum but I can’t tell to what extent they reflect the reality of the code now and how much they are just discussion of future ideas.

The next question is how to handle signing keys across multiple computers. Should I create different keys on each one? Or just copy the pair I made first around?

Finally, I’m curious what the best way for Pijul to manage config files in my home directory might be. Should I make a branch for my home pc, one for my office pc, one for my laptop and send patches to branches as appropriate? Or do branches work completely differently and I should do something else?

I’m keen for all of this to end up in the manual/official docs somewhere, instead of buried forever in forum threads. I’ve sent one typo fix patch already (I think; the official line of pushing to the branch linked to the discussion didn’t work for me but it’s in there somehow) and I’m happy to try to write up answers here.


To answer my own question, an immediate problem (which I really should have seen coming) is that if I just pijul init in my home dir, I can’t have any other repos anywhere under that directory.

And a related bug report:

  1. cd /tmp; pijul init test
  2. cd test; pijul init nested

Expected error: Repository "/tmp/test" already exists (or similar)
Actual error: Repository "/tmp/test/nested" already exists
And perhaps the empty directory should be cleaned up too?

1 Like

That’s possible in git, so maybe it also should be possible in pijul?

There are a lot of features missing: ignore files come immediately to mind, as running pijul status in my home directory shows a lot of junk I don’t want in the VCS.

You can use a .pijulignore it has the same format .gitignore is using.

As for branches, they work quite well already!

If you want to version control your home dir, you can pijul init in ~/.config.
Configs of apps that doesn’t conform to the XDG base directory spec, can be symlinked.
For example Pijul doesn’t conform to it:

mv .pijulconfig/ .config/pijul
ln -s .config/pijul .pijulconfig

Then you can track those also in .config.