Our team decided that is time to finally leave Serena PVCS behind ( yay!! ) and now we have to decide between git or SVN. But even after reading some outdated docs and posts regarding how git handle bin files i couldn't find a direct answer about this topic. So, since one of our repo's have 50gb, and 90% of then are .doc, .xls, .zip ( each one from 1mb to 20mb from version 1.0 to 1.178), i'm not secure to turn my boat to the Git Island.
what i found so far is:
https://help.github.com/articles/working-with-large-files
http://stevehanov.ca/blog/index.php?id=50
https://news.ycombinator.com/item?id=3548824
Most of our "geeks" ( recent born developers with less than 1y out of the university ) are crying out for git because is "mainstream" but i dont think git would solve the problem this type of repo. I mean, we allready manage some repos using git ( for java source mainly ) but i'm struggling to decided for which direction should we aim.
Also, besides Git/svn/Mercurial, is there any other option for bin files ?
Thanks in advance.
EDIT: Please understand that i'm not going into "gorila vs shark" philosophy , i'm just trying to get more inputs in order to decide if i should choose git over svn.
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):
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With