I'm currently traveling and working off my other laptop. My main computer is now a desktop machine.
My question is: What do you do to share your development configuration between devices? Specifically both of my computers are macs. I'm interested in specific technology I can be using to help with this, in addition to general discussion around this topic.
Thanks!
Latest comments (25)
I use docker heavily for development so i just spin up whatever I need but most importantly I've a docker image saved with VSCode with all my preferred configuration and extension so that I don't have to configure it every time I use new pc or install new OS.
I've heard good things about github.com/lra/mackup. i'm about to experiment with that now
Dotfiles repository on gitlab.
Using stow to setup config files.
Yes. I put my configs and dotfiles in a GitHub repo. One thing on my todo list is to make a script to install them using symbolic links.
For personal projects and small ones I keep them in the main repo, as .sample files with all the real settings, except secrets ofc.
I use github gists to store simple things. My VS code settings is in a gist, I use an extension for this.
All other quick settings or desc, or anything code/dev related, I use gists for that as well. I use the app called Lepton and you can use your gist like Evernote with it. Except, you wouldn't need your gists in your mobile. I also store all my quick reference code snippets there. It's super cool and comes handy at times.
There's a lot of direction here towards storing your config in source control, just make sure you're OK with what you're storing and assure yourself that if a stranger were to get ahold of your config that nothing could be exploited with that config data.
For example, don't store your secret API access keys in your config in your git repository. I've seen plenty private repositories get forked by contractors (or inexperienced friends/developers) and somehow get published publicly or leaked. It's easiest to avoid all of this by having other means of sharing that sensitive data.
I use dotfiles and homeshick to sync my configuration between machines.
Homeshick automates the process to a good level in my opinion.
github.com/andsens/homeshick
There's a ton of dotfiles management solutions, even multiple lists of them:
I'm currently using GNU Stow to do a lot of the management from this guide coupled with a Brewfile and a small shell script to install a few crucial things. I'm still not terribly happy with it.
This biggest issue I have is crossing operating systems. My work computer is a MacBook Pro, but my home desktop is a Windows PC also running Ubuntu on WSL. So I'll run VS Code, IntelliJ and any other graphical stuff there but run Java, Node and the link in the WSL.
I haven't applied this in the context of sharing IDE config between devices, but...
I have 2 git repos that correspond to physical devices (my working laptop & my home server). I use each git repo as the source of truth for configs (typically via
ln -s) and scripts for both provision & maintenance.I did this primarily for disaster recovery but it's easily repurposed for sharing