Which Revision Control Software to use for Personal Dropbox? [closed]

I want to set up a sync repositiory that would be similar to Dropbox.

Goals/Requirements:

  1. Free (Open Source very preferable)
  2. Linux host (probably Ubuntu)
  3. Windows/Mac/Linux clients
  4. Potential for multiple users with limited access (optional)
  5. Preferable easy, doesn't necessarily need to be automatic
  6. Revision control very preferable

Basically, I want to be able to use multiple computers, possible with different OS's, and be able to access, use, and sync files across all of them. I also want to have a local copy of the repository for when I'm not connected to the network (as if I'm working on a laptop, I want to keep a local repository to keep revision and merge later with "master" repository).

For example, I'm editing a few pictures on my laptop during the day outside of my network, but when I get home, I would like to sync the changes, including incremental changes, with my desktop at home.

I would also like my roommates to be able to access and use this repository too but limit access to certain files. For example, I may want to use this to backup financial records but wouldn't want them to have access to those files.

I'm a programmer and familiar with SVN but I know that wouldn't be the most appropriate since it doesn't handle binaries well and doesn't keep a local repository. I know better choices exist but I don't really know them well enough to choose the best one.


For subversion, you can have a local repository - just create one locally and you're done. You can then sync with a remote repo regularly using svnsync. Or do it the other way round, use a remote repo and sync locally (as I do for backups).

Svn does handle binaries well, or at least as well as any other SCM. The trouble with binaries is that they are difficult to diff, that's not a failing with svn, just a property of binaries.

Git or Mercurial (or Bazaar) sounds more appropriate for your needs as they're distributed SCMs in that you operate on a local repo all the time, and then push changes to a remote repo. Mercurial is probably the best for Windows as you have good GUI tools; Bazaar is one developed by Canonical and Git by Linus. That's about all the differences between them anyone cares about :) There are comparisons on the web - apart from git not being native Windows, Mercurial is probably better as it supports more of a 'what you have is what the remote users have' whereas Git is more a 'what remote users have is what you let them have' which will require more effort from you given your requirements (both, of course, can share all or subsets, but its easier for Mercurial to have a subset restricted than it is for Git to share all)

If you want to use 'both' you can have git-svn or SVK which add distributed functionality to SVN.


I would suggest git. Just set up different repositories for your financial data and your 'shared' data. Access is granted via ssh.


Maybe you want to try http://www.sparkleshare.org/ A recent discussion about it can be found at http://apps.ycombinator.com/item?id=1424299.