二进制文件的 Git 或 Subversion

Posted

技术标签:

【中文标题】二进制文件的 Git 或 Subversion【英文标题】:Git or Subversion for binary files 【发布时间】:2010-11-10 16:57:07 【问题描述】:

我们需要将二进制文件(主要是 MS Word 文档,大小从几 KB 到几 MB 不等)存储在一个包含 100 多个“项目”的版本控制存储库中。目前我们使用Visual Source Safe,但存在一些问题,数据库有时会崩溃,访问速度很慢。

我们正在考虑迁移到 Git 或 Subversion,并且想知道哪一个更适合处理二进制文件。

【问题讨论】:

在问题中包含 mercurial 会很有趣 ;-) @FerranB 感谢您的提示,我会检查一下 如果您担心,或者只是对 MS Word 文档的存储要求感兴趣,您可以看看:***.com/questions/1320654/… 【参考方案1】:

Subversion 尝试自动检测二进制文件(请参阅SVN FAQ)。如果失败,你必须自己指定它们(你也不能改变SVN的检测方法)。

Git 也是如此,您可以通过在源存储库中包含 .gitattributes 文件来指定自动将哪些文件视为二进制文件。

Here是Git和SVN对二进制文件处理的比较。

Here 是其他一些 Stack Overflow 成员对 Git 和二进制文件所做的事情。

希望这会有所帮助!

【讨论】:

【参考方案2】:

颠覆,绝对。今天(2009 年),TortoiseSVN 提供了 Subversion 存储库的 Explorer 集成导航,尤其是它支持任意 Word 文档的diffing(它将 diff 推迟到 Word 本身,但该功能非常有效)。

TortoiseGit 没有理由不能拥有同样的功能,但今天这样的东西并没有以稳定的形式存在。幸运的是,将来随时可以轻松地将 Subversion 存储库迁移到 Git。

更新:截至 2011 年,TortoiseGit 显然具有与 TortoiseSVN 相同的文档管理功能。但是,Subversion 支持建议锁定文档,以便其他用户在尝试与其他人同时编辑文档时会收到通知。据我所知,由于 Git 的分布式特性,TortoiseGit 无法支持此功能。

【讨论】:

这是比较 TortoiseSVN 和 TortoiseGit,而不是真正的 svn 和 git。这也假设用户是 ms windows 用户,并且他不会使用官方的 svn 或 git 客户端。假设太多,我对 JPEG 而不是 DOCS 有完全相同的问题,我发现答案完全不相关。 看看Pro Git一书中的"Git Attributes"章节。它解释了如何为特定文件类型设置差异工具。 没关系,TortoiseGit 现在支持原生比较 Word 文档 :-) 如果您不需要推送 cmets 或文件锁定,请考虑查看 Sparkleshare。这是一个基于 Git 的“私人 Dropbox”,几乎每个平台都有客户端。【参考方案3】:

TortoiseGit 支持 Office 文档的完整 git 工作流,将差异委托给 Office 本身。 它还可以将 OpenDocument 格式委托给 OpenOffice。

【讨论】:

【参考方案4】:

我们使用 git 处理一切。字面上地。甚至我们行政办公室的整个文件共享都保存在 git 中(系统管理员每天都会提交)。

该共享几乎完全是二进制文件——word文档、quickbooks等......

我们拥有 100% 准确的所有历史记录。偶尔会出现git gc,它可以使存储库大小保持可控。

另外:git 真的很快。当我们从 SVN 切换时,git 在我们的使用模式中比 subversion 快 10 倍左右(具有 20,000 多个文件的大型项目)。

【讨论】:

您是否使用任何可视化工具来处理它?我们存储库的用户大多是业务分析师,如果我们提供其他任何东西,他们会惊恐万分。 我在 Windows 上使用过 msysgit。但不足以告诉你这是否很容易。 TortoiseSVN 很容易使用,我从经验中知道。 行政办公室的 Git 存储库有多大? @FerranB:目前超过 2GB。 还有 Git à-la TortoiseSVN 的可视化工具:TortoiseGit 和 GitCheetah。

以上是关于二进制文件的 Git 或 Subversion的主要内容,如果未能解决你的问题,请参考以下文章

subversion如何在存储库中存储文件?

SVN服务搭建和使用

SVN服务器搭建和使用

svn服务器搭建与使用

svn服务器的搭建与使用一

SVNSVN服务器的本地搭建和使用