How should I synchronize configurations and data across computers? [closed]

Solution 1:

Apps like f-spot, thunderbird, and google-chrome all use some form of binary database to store their data. Trying to sync things like this where there's the possibility of the same app accessing/modifying the file at the same time could get really messy.

Instead you want to look for application-specific solutions.

  • With thunderbird, I would say use IMAP. If you don't have it, GMail supports it. You could have thunderbird upload all your email there, or better yet, have GMail pull in email from your other accounts. You also gain pretty decent webmail and a great spam filter for free.

  • Firefox has (amongst other things) Firefox Sync.

  • Chrome has a sync feature built in, documented here.

  • F-Spot is tougher. Perhaps consider something to sync the files but not the database. This would mean you'd need to scan for new files all the time but only if you needed to use F-Spot on every computer.

    You could limit yourself to using F-Spot on one computer and just accessing the files on the others. Of the three, the F-Spot database is the most fragile so be careful if you do share the database file.

Solution 2:

To synchronize data, such as documents, use UbuntuOne or DropBox. I can really recommend the latter. This assumes that you don't mind storing your data in a company's data center or cloud. I'm not sure about sharing your music collection through the internet. My network connection is not fast enough to allow this, so I'd go with manual copying or using rsync regularly.

For configuration, there are two different cases: applications that use regular text files as configurations, and those that use a gconf, a database or something nonstandard. For the former, you can store the dotfiles (for instance ~/.vim/, ~/.zshrc) in a subfolder of your Dropbox (or UbuntuOne) folder, and then symlink the files back to your $HOME directory. This works well.

As to the applications you mention, it seems that none of them use simple text files as configuration. That means, in essence, that you can't effectively synchronize them. The reason is that, if there is a conflict, you won't be able to resolve it. Furthermore, some parts of the configuration directory, such as cache files, are bound to be system-specific or otherwise inappropriate for synchronization. In these cases, I say don't bother with synchronization, and just copy over the config directory once. There's an exception, however: applications that natively support sharing a configuration across multiple computers. Firefox can do this, and recent versions of Google Chrome can store at least some parts of the configuration in your Google profile (check your preferences). I'm not sure sharing plugins/extensions is supported, but it's a feature that is being worked on.