Version Control for MP3s?

I've got a lot of "binary media", which I'll abstract away as "MP3s". I've also got several computers that I'd like to have the whole library on - a desktop, media box, a laptop here or there, etc. In short, it would be nice to be able to sync all these machines with each other such that they all have the same stack of files.

A Version Control system, as opposed to an rsync/robocopy lashup, in the rough sense seems like the way to go. First, there are several OSs involved (Windows, Mac, Linux flavors). Second, it would be nice if when ID3 tags and such are updated, the system could just update the file delta, not re-copy the whole file. (Finally, being able to update the library over the internet, rather than the lan, would be very cool.)

But your classic CVS/SVN system has the obvious drawback of needing a full repository to work, and I'd really rather not have two copies of my 60gb+ MP3 folder sitting on a machine somewhere, as well as not traditionally dealing with binary deltas very well.

So, Distributed Version Control starts sounding pretty good at this point. Mercurial, git, and bazaar all look good on paper, but I don't have any experience with any of them. Has anyone tried to set up a "binaries-only" DVCS with any of them? Any recommendations? Pitfalls?


But your classic CVS/SVN system has the obvious drawback of needing a full repository to work, and I'd really rather not have two copies of my 60gb+ MP3 folder sitting on a machine somewhere, as well as not traditionally dealing with binary deltas very well.

With CVS/SVN you have one repository, and several working copies. So the repository contains every file once plus the whole history for every file. The working copy contains every file once plus some additional data per file (usually approx. the size of the file).

Very roughly: Let's assume our revision control system cannot store diffs of binary files efficiently (not really true, but for simplicity). Your collection is 60 GB MP3 files. If you have 10 revisions per file on average and we neglect compression (because MP3s compress bad) your repo will be ca. 600 GB and your working copy ca. 120 GB.

So, Distributed Version Control starts sounding pretty good at this point.

In a distributed system every working copy is essentially a repository, that means every working copy contains every file plus history.

Same assumptions as above, every copy will have ca. 600 GB.

Bottom line is, distributed system will require more space than centralized.

EDIT:

Even if your question is more about a large number of binary file than large binary files in version control the following post might be intersting: Revisiting large binary files issue.


This isn't really an answer to your question, but I've started using DropBox for the same purpose. It's cross-platform, and you can get a 100GB account if you don't mind paying a little more. It also stores revisions to files, very similar to source control.