Git或SVN如何处理大型二进制文件

时间:2014-05-08 11:35:30

标签: git svn

我们的团队决定最终离开Serena PVCS(yay !!),现在我们必须在git或SVN之间做出决定。但即使在阅读了一些关于git如何处理bin文件的过时的文档和帖子之后,我也无法找到关于这个主题的直接答案。所以,由于我们的一个repo有50gb,其中90%是.doc,.xls,.zip(每个从1mb到20mb从版本1.0到1.178),我不安全把我的船转到Git岛。

到目前为止我发现的是:

https://help.github.com/articles/working-with-large-files

http://stevehanov.ca/blog/index.php?id=50

https://news.ycombinator.com/item?id=3548824

我们的大多数"极客" (最近出生的大学不到1年的开发人员)正在为git而大声疾呼,因为他们是#34;主流"但我不认为git会解决这类回购的问题。我的意思是,我们已经使用git管理了一些回购(主要是针对java源码),但是我很难决定我们应该针对哪个方向。

另外,除了Git / svn / Mercurial之外,bin文件还有其他选项吗?

提前致谢。

编辑:请理解我没有进入"gorila vs shark"哲学,我只是想获得更多的输入以决定我是否应该选择git而不是svn。

3 个答案:

答案 0 :(得分:9)

  

我们的大多数“极客”

不是极客,而是无脑的Git-fanboys。完全忽略小辈,他们一定没有发言权

根据个人经验,我可以得出结论,这两个系统几乎同样处理大型二进制文件同样平庸具有来自SVN的轻微优势(对于1.7之前的版本,现在我不知道在Git方面看一下):

  • 提交到存储库的相同修改文件,增加了比Git-repository略小的SVN存储库的大小
  • 我从来没有用大文件破坏SVN-repo,Git它发生了明显的时间

对于您的情况,最佳选择是Mercurial LargeFiles扩展名(特殊差异|合并|每个文件类型的查看者,encoders|decoders是额外的奖金,Git | SVN无法提供)< / p>

答案 1 :(得分:4)

Git并不能很好地处理二进制文件,因为它并没有很好地压缩它们。他们最终会在你的Git回购历史中占据大量空间。我有这方面的第一手经验;当我添加并删除了几张小图片时,我需要很长时间才能重新登录存储库。

对于SVN,由于它是集中式的,因此您并不真正影响开发人员,因为您无论如何都不需要存储库的整个历史记录(在大多数情况下)。至于在服务器上占用的空间,我对此并不太确定。

最好寻找一种替代方法来上传大型二进制文件。也许最好的方法是将文件上传到替代来源。 SVN对二进制文件应该没问题。至于Git,不要永远将它与二进制文件一起使用。如果必须,请将二进制文件保存在单独的存储库中。

但是,既然你没有,你应该使用 SVN


进一步阅读的链接:

Git and binary data

答案 2 :(得分:-1)

为此目的,有一个名为git-lfs (Git Large File Storage)的新开源git扩展。

git-lfs由github开发和维护。

来自上面链接的git-lfs页面:

  

Git大文件存储(LFS)在Git内部用文本指针替换了大文件,例如音频样本,视频,数据集和图形,同时将文件内容存储在远程服务器上...