What does HackerNews think of mackup?
Keep your application settings in sync (OS X/Linux)
Instead I use mackup[0] which automatically manages symlinks to your Dropbox/Drive/Share and has support for a huge amount of software by default. You can also manually add “extra” files you wish to track if you like.
I do keep my ~/scripts/ directory in a git repo (also this directory is in my $PATH) because they're all very hack and slash "I need to do a thing repeatedly, quickly" scripts. Sometimes I might want to go back a step or two when I really break everything. This repo auto pulls/commitpushes every now and then as this one is more useful to be up to date on all machines than to have useful commit messages
As for live syncing devices I do have unison running on my laptop frequently to sync (when its on) a few directories I might need offline. Mostly everything I need as a dev is in git repos though, so I use manual git push/pulls to sync everything else
I did previously use mackup (https://github.com/lra/mackup) to sync configs but if I'm honest I forgot I had it set up the last time I reinstalled so it got removed from the process unintentionally
What it does:
1. moves your dot files and whatnot into DropBox (or Box or Google drive or whatever)
2. symlinks the moved file to the original location
Projects: I have a Shared folder on ~ which has bidirectional sync with my desktop (with Resilio[1]). Inside that folder are my current projects. The old ones, are on private git repos (the codebase) and on backblaze (full replicated production project, with rclone[2]). I use Resilio because its fast, reliable and it supports ignore patters (eg node_modules)
Dotfiles: For syncing my dotfiles, ssh keys and app settings across my machines I use Mackup[3]. Life saving tool. My macbook has the exact same settings as my desktop and vice versa. I keep all my settings in a Dropbox folder and they are symlinked automatically on the machine.
General: I have 3 subfolders on Downloads. Chrome, Attachments and Torrents. Each one is self explanatory. I like my downloads to be organized, because I clean them up occasionally. I use Desktop as a temp area, therefore I don't have permanent files there. All my documents (financial, reports etc) are on Dropbox organized by year.
[1] https://www.resilio.com/individuals/ [2] https://rclone.org/ [3] https://github.com/lra/mackup
Mackup [1] might also be worth considering. It symlinks all of your config files to a supported storage location (Dropbox, Google Drive, iCloud, Git etc.) which enables you to either backup the settings or sync them between one or more other Macs. To restore your settings on a brand new Mac simply run "mackup restore".
I first tried Ira's [mackup](https://github.com/lra/mackup), which syncs files to Dropbox. Its catch-all approach scared me, though, as it backs up `fish` history by default. I decided to move to something different.
I ended up basing my dotfiles setup on the GNU [stow](https://www.gnu.org/software/stow/) utility. Here's how it works:
- In `~`, I have a git-managed directory `dotfiles`
- For every new app I use, I make a new directory in `dotfiles`. For example, `vim`, `fish`, etc.
- I run `stow` on all these directories, and it symlinks everything into place
I ended up rolling my own update script, but it's pretty trivial. I also made heavy use of Homebrew brewfiles, which can be used to define what commands you would like to run through Homebrew. I also use [Homebrew Cask](http://caskroom.io/) to install apps.
In the end, I now have the exact same configuration on all my machines. For work, I have a separate branch, which has other fish functions / utilities. I recently got a new computer, and I ran the `update.sh` script while I went to lunch. When I came back, my machine was ready to go.
Take a look at my setup [here](https://github.com/peterhajas/dotfiles).