【问题标题】:How Git or SVN handle large binary filesGit 或 SVN 如何处理大型二进制文件
【发布时间】:2014-06-25 18:40:06
【问题描述】:

我们的团队决定是时候最终将 Serena PVCS 抛在后面了(耶!!),现在我们必须在 git 或 SVN 之间做出决定。但即使在阅读了一些关于 git 如何处理 bin 文件的过时文档和帖子之后,我也找不到关于这个主题的直接答案。因此,由于我们的一个存储库有 50gb,其中 90% 是 .doc、.xls、.zip(从 1.0 到 1.178 版本的每个存储库从 1mb 到 20mb),我不安全将我的船转向 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,因为它是“主流”,但我认为 git 不会解决这类 repo 的问题。我的意思是,我们已经使用 git 管理了一些存储库(主要用于 java 源),但我正在努力决定我们应该瞄准哪个方向。

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

提前致谢。

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

【问题讨论】:

  • 从一个个人 PoV(这就是为什么它不是一个答案),Git 对我来说主要是因为你可以在本地工作并且轻松地将你的更改与主人合并,大部分时间是自动的。但是,考虑到 您无法合并两个(例如,.zip)文件的更改,并且将它们保存在本地会使本地副本膨胀,我可能会选择 SVN。为自己省去所有针对二进制文件的 git 扩展的麻烦对我来说是另一个加分项。

标签: git svn


【解决方案1】:

您可以为此使用git-lfs (Git Large File Storage)

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

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

【讨论】:

    【解决方案2】:

    Git 不能很好地处理二进制文件,因为它不能很好地压缩它们。它们最终会在你的 Git 存储库历史中占用大量空间。我对此有第一手经验;当我添加和删除几张小图片时,我花了很长时间重新克隆存储库。

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

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

    但既然你不这样做,你可能应该使用 SVN


    进一步阅读的链接:

    Git and binary data

    【讨论】:

    • 我发现链接的帖子非常有用。 Git 已针对存储源代码文本进行了优化。
    【解决方案3】:

    我们的大多数“极客”

    不是极客,而是无脑的 Git 粉丝。完全无视后辈,他们一定没有发言权

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

    • 提交到存储库的相同修改文件增加了 SVN 存储库的大小,略小于 Git 存储库
    • 我从来没有用大文件破坏过 SVN-repo,但在 Git 中它发生了值得注意时间

    对于您的情况,最好的选择是带有 LargeFiles 扩展名的 Mercurial(并且每个文件类型都有特殊的不同|合并|查看器,encoders|decoders 是 Git|SVN 无法提供的额外奖励)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    相关资源
    最近更新 更多