What does HackerNews think of mackup?

Keep your application settings in sync (OS X/Linux)

Language: Python

I moved away from using a dotfiles repo a few years ago because I kept forgetting to add/commit files as I changed them.

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.

[0] https://github.com/lra/mackup

It's probably awful but I sorta really just rely on system backups for my configs. Download and restore anything I'm missing from the latest backup when I reinstall the system.

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

I use https://github.com/lra/mackup and love it. Takes care also about application configs.
Another alternative (that I'm surprised isn't already mentioned) is https://github.com/lra/mackup.

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

I use OSX.

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

> If I get a new computer or am using someone else's even, it's easy for me to install what I need as I need it and get going out of the box.

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".

[1] https://github.com/lra/mackup

Mackup (https://github.com/lra/mackup) is a great tool for this. Beware, however, that it creates symlinks in place of your existing files. So if you decide you don't like it, run the uninstall command before removing the Mackup folder or bad things will happen (I learned from experience).
I'd like to recommend Mackup for backing up machine config (and keeping them in sync) https://github.com/lra/mackup.
Several months ago, I became pretty interested in the idea of a unified computer setup. Between my home computers and work computers, it began weighing on me mentally to have to switch contexts all the time. I'd forget which machine had `wget`, which `fish` functions were installed on which host, etc. The most tedious thing was the process of setting up a new computer: painstakingly finding each and every little configuration I had on my other machines, and copying them over. I'd spend half a day just setting up a new machine. I wanted something better.

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).

For the people recommending symlinking to a Dropbox folder, see https://github.com/lra/mackup