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 often find myself working on an out-dated version of a document, because I previously edited it on my MacBook and now I'm on my Mac Pro.

I'm looking for a tool to help me synchronize this as seamless as possible. At my disposition, I also have a Debian server.

As it is right now, I have an rsync script on both Macs that synchronize with a folder on the Debian server. I try to execute whenever I'm switching machine, but it often happens that I forget it and sometimes if I've forgotten and I later pull from the server, my data is lost. All in all, it's a tedious solution.

What alternatives are there? I was hoping for a tool that could somehow help me automate this. Preferably something with version control. I have considered setting up a Git server on the Debian, but I don't know if that's the best solution. The amount of data I need synchronized is about 2GB right now.

I hope this belongs here — I didn't feel like it was particularly an OS X question, a UNIX question or a server question.

share|improve this question

closed as off topic by Karan, Breakthrough, Ƭᴇcʜιᴇ007, Tanner, Dave M May 24 '13 at 15:41

Questions on Super User are expected to relate to computer software or computer hardware within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

1  
If rsync works for you, why not just use it with inocron to trigger the backup as soon as the file is changed? –  Journeyman Geek May 23 '13 at 6:28
1  
Unison works great, but if you want version control, look into using Mercurial. I believe there is a TortiseHg GUI for Linux now, and you can synchronize Mercurial repositories between individual computers. –  Breakthrough May 23 '13 at 16:20
    
Seafile (seafile.com) might do what you want, but I haven't tested it by now. –  FSMaxB May 23 '13 at 17:54
    
@FSMaxB Thanks for the suggestion, but I prefer something selfhosted. –  kba May 23 '13 at 21:26
    
@kba I thought it is, see seafile.com/en/download , you can download the server version for different OSs. –  FSMaxB May 23 '13 at 21:30

5 Answers 5

up vote 1 down vote accepted

If you want to handle large repositories and version control including binary files, I wouldn't recommend git but mercurial.

You would however have to write your own cronjobs for committing and pushing.

Unison (mentioned by Michele Marcionelli) is a really great tool for bidirectional syncing, especially over ssh. It has a batch mode that doesn't ask questions and therefore resolves conflicts automatically, but I wouldn't recommend that as resolving conflicts manually works really great with the gui. If you want version control with unison, you can make a git or mercurial repository inside the directory that is synced via unison.

With unison you can synced centralized by using a server you own or directly between devices. I've been using it for normal files and several git repositories with three devices for one year and it is very reliable. (In contrast to ownCloud or SparkleShare)

PS: About SparkleShare: Don't even consider using it. It nearly always fails to resolve conflicts, doesn't handle binary files well, runs out of memory and crashes in low ram environments with big repositories and randomly uses 100% of the CPU until resolving conflicts with the underlying git repository manually.

share|improve this answer

I'm using Unison since many years now and it works very good: it is a two-ways file synchronizer with GUI and a CLI.

share|improve this answer

I would say git is a decent option. If you can edit from multiple locations and still have up to date versions. And the version control is an added benefit, if you need to roll it back a version.

Once you have a clone of the repo, only updated bits would be downloaded when you git pull, so that would save on time/bandwidth compared to some options.

That being said, there is dropbox, and self rolled drop boxes, for linux.

share|improve this answer

Git is a good option and provides the version control you wanted.

If you want something more dropbox -like, BitTorrent Sync Might be the answer. It doesn't have a central server.

share|improve this answer

This just screams Dropbox or Google Docs to me. If you don't like yuour data on Google Servers, there are sync servies like OwnCloud that use your own servers.

share|improve this answer
    
I simply don't like the idea of having my data stored at a third party. You often hear how companies like those have had leaked data. –  kba May 23 '13 at 3:30
    
I wouldn't recommend ownCloud, as I tried it and haven't had my 20GB synchronized after two weeks of letting the client sync and the Webinterface isn't the best considering missing stability. Note that this could have changed by now, as I were trying ownCloud half a year ago. –  FSMaxB May 23 '13 at 15:38
    
@FSMaxB: I have just tried out ownCloud and been struggling with it for a few hours and nothing has synchronized yet as well. I keep getting weird errors such as failed to extract meta information for /kba/files/clientsync/test: unable to determine file format. –  kba May 23 '13 at 17:05

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