Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question
    
should this be a community wiki? –  wag2639 Jun 11 '10 at 0:51
1  
Not if you ask me, this is just a software-rec question that's unlikely to be answered easily –  Ivo Flipse Jun 14 '10 at 19:46
    
I was thinking either mercurial or something but I don't know the differences between them. –  wag2639 Jun 14 '10 at 21:53
1  
SVN doesn't handle binary files well? News to me, that's what I use it for! –  Fake Name Jun 19 '10 at 7:17

6 Answers 6

up vote 5 down vote accepted
+100

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.

share|improve this answer

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

share|improve this answer
    
yup, git is the solution. –  alexanderpas Jun 17 '10 at 0:38
    
Last I checked git had no descent windows support. –  Nifle Jun 19 '10 at 22:19
2  
When was the last time? Before last time (over a year ago) I would have said the same but now there is a decent client TortoiseGit and the msysgit is quite OK, sometimes hickups a bit. But over the last few months it was quite stable and usable –  jdehaan Jun 20 '10 at 11:45
    
@jdehaan - It was about six months ago I checked last. I'll check out your suggestions. –  Nifle Jun 20 '10 at 19:48

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.

share|improve this answer

Is there a particular reason why Dropbox won't work for you? It does cover everything on your feature list with the addition of mobile device support. Not sure you will be able to find an "easy" version control system that handles binaries well.

If you do choose to go with Git, here is an interesting post on hosting your Git repositories in Dropbox:

http://intranation.com/entries/2010/02/using-dropbox-git-repository/

This technique should work with Mercurial and Subversion repositories as well.

share|improve this answer
    
If he needs to guarantee data security, he would not be able to with dropbox because it's 3rd party. –  Darth Android Jun 18 '10 at 2:07
    
Yup, thats the primary reason, but also, it has a small limit and I don't want to pay. –  wag2639 Jun 18 '10 at 3:15
    
If you're worried about security, just encrypt the data. Your house can get lost to a fire, or someone could break in and steal your computer, or your hdd could fail. You're likely to have more data security with a large reputable service provider like Dropbox. I can empathize with not wanting to pay though. –  Lèse majesté Jun 19 '10 at 8:21
1  
"If he needs to guarantee data security..."?? If he needs to guarantee data security then he's screwed. Nothing is hack-proof. You trust your ISP simply by using the internet so why not trust Dropbox. In relative terms (which you really need to be using) Dropbox is the most secure out there. –  cottsak Jun 21 '10 at 11:12

iFolder. Check it's features to know if it's what you're looking for. (It doesn't have revision control, so if this feature is a must, iFolder isn't what you're looking for.)

You simply save your files locally-as you have always done-and iFolder automatically updates the files on a network server and delivers them to the other machines you use.

share|improve this answer

I think subversion is the way to go.
It is thoroughly supported on many platforms and good clients exists for windows, mac and linux amongst others.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.