How Git or SVN handle large binary files

most of our "geeks"

are not geeks, but brainless Git-fanboys. Ignore juniors totally, they must not have voice

From personal experience I can conclude that both systems handle big binaries almost equally mediocre with with a slight advantage from SVN (for pre-1.7 versions, now I don't see at Git side at all):

  • the same modified file, committed to repository, increased the size of the SVN repository slightly smaller than Git-repository
  • I never had broken SVN-repo with big files, with Git it happened noticeable amount of time

For your case best choice will be Mercurial with LargeFiles extensions (and special differs|mergers|viewers per file-types, encoders|decoders are additional bonuses, which Git|SVN can't offer)


Git doesn't work that well with binaries, since it doesn't compress them that well. They'll end up taking a massive amount of space in your Git repo history. I had first-hand experience with this; when I added and removed a couple of small pictures, it took ages for me to reclone the repository.

For SVN, since it's centralised, it doesn't really affect developers as you don't need the whole history of the repository anyway (in most cases). As for space taken up on the server, I am not too certain about that.

It would be best to seek an alternative method to upload large binaries. Perhaps the best way would be to upload the files to an alternative source. SVN should be fine with binaries. As for Git, don't ever use it with binaries. If you must, keep the binaries in a seperate repository.

But since you don't, you should probably use SVN.


Links for further reading:

Git and binary data

Tags:

Svn

Git