Managing config in git (dotfiles manager)

Back when I began using Mixbus, I wanted to sync my config across multiple computers. Because I already used a dotfile manager (yadm), I began adding my config to that, and it suits my needs. Now that I’m using Ardour more, I’ve doing the same with Ardour’s config.

I made a video demonstrating, if anyone is interested: https://www.youtube.com/watch?v=dn8v9pBxL6A

Please forgive my relative ignorance of some of the inner workings of the config. I’m learning.

3 Likes

cool… I use nextcloud to share my plugins between my two machines.

1 Like

I’ll watch the video soon. For now I’ve been building up my .gitignore file with things that aren’t necessary and have high churn.

❯ cat .gitignore 
# Exported audio files
*/export/**

# Ardour peak files
*/peaks/**

Nice. Thanks for sharing.

In that case be careful sine there are some absolute filesystem paths in the config file. Notably the location for new sessions. If you copy the config then those locations also need to be present on the other system.

PS. upcoming Ardour 9 only stores differences from default values in the config.

Tech details

So far all possible configuration variable were saved in the config files, even those that a user never touched. This made it impossible to change a default value (or correct mistakes). In that care a new variable was added to force an update.

This was annoying to users who had explicitly changed the value, and to devs who had to remember to phase out he old variable on the next major version.

3 Likes

This is a most welcome change. Thanks.

So you’re adding sessions to git repositories? If so, I hadn’t considered that.

So far, I’m finding that, when I diff the config file, I don’t want to commit most day-to-day changes (lots of window stuff). I’ll be on the lookout for paths… nothing broken yet.

Regarding saving only differences: that makes sense. Will the defaults will be in text files in /opt/etc?

Yeah, and I’m putting audio files into git LFS. I’ve seen the same thing with diffs but eventually I commit them. It’s not always pretty.

❯ cat .gitattributes
*.flac filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text

No, those files are empty by default already, besides that would also defeat the purpose of being able to change them.

Defaults can be found in the source at