I've started using YADM, which has been entertaining. In theory, I really like the idea of managing my dotfiles in git. In practise, it's more difficult than I figured.
YADM is pretty simple software - it's packaged for Debian and is a just a script - it's available for FreeBSD through the mystical power of wget or curl. It's packaged for a range of other distributions/OSes too, but they're pretenders so I don't care about them
The command set is pretty simple, and the getting started guide is ok. Basic tasks can be covered as
yadm add <file>,
yadm commit and
yadm push - the git command set, but proxied through another program.
Likewise, if you are on a different machine, you can
yadm clone <url>.
I picked my important dotfiles I wanted to share on my main laptop, committed them and pushed them to my server. Easy enough - they're all backed up. I can now move pointless amateur radio config files between machines.
On my FreeBSD disaster of a hackbook I ran
yadm clone from my remote repo and logged out then back in. Nothing.
Turns out, YADM had done the git thing of noticing a conflict. A quick
yadm reset HEAD --hard overwrote all my local config and it was mostly fine. I only lost my background (put in place on i3 by feh). Little bit of fiddling and all was back to normal. Lesson learned,
in future, be more careful!
I'm yet to understand the more advanced featureset - I've not got a hang of alternate files - it's not particularly clear how to intialise this. Any suggestions are welcome!
I like the concept behind YADM. I'll keep prodding at it - for fast set up of new machines, or replicating a build it seems like a really nice thing to use. For my current use case, however, it's not the most useful until I get alternates working.