Git或Subversion用于二进制文件?

26

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

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


我很有兴趣在问题中包含mercurial;-) - FerranB
2
如果您关心或仅对MS Word文档的存储要求感兴趣,可以查看以下网址:https://dev59.com/YHM_5IYBdhLWcg3wlEFH - RjOllos
4个回答

37
  • Subversion尝试自动检测二进制文件(详见SVN FAQ)。如果失败,您必须自己指定它们(您也无法更改SVN的检测方法)。

  • Git也是这样做的,您可以通过在源代码库中包含.gitattributes文件来指定要自动处理为二进制文件的文件。

  • 这里是Git和SVN二进制文件处理的比较。

  • 这里是一些其他Stack Overflow成员在处理Git和二进制文件方面所做的工作。

希望这有所帮助!


15

我们在任何方面都使用Git。真的是任何方面。甚至我们办公室的整个文件共享都保存在Git中(系统管理员每天提交)。

那个共享几乎完全是二进制文件 - Word文档、QuickBooks等...

我们对所有事情都有100%准确的历史记录。而且偶尔用git gc使存储库大小可管理。

此外:Git速度真的很快。当我们从SVN切换到Git时,使用模式(具有20,000多个文件的大型项目)下的Gitsubversion快了约10倍。


你使用任何可视化工具来处理它吗?我们仓库的用户大多是业务分析师,如果我们提供其他任何东西,他们会感到恐慌。 - Aleris
我在Windows上使用过msysgit。但是我不能告诉你它是否非常容易使用。从我的经验来看,TortoiseSVN相当容易使用。 - gahooa
1
你的 Git 仓库大小是多少,用于管理办公室? - FerranB
@FerranB:目前超过2GB。 - gahooa
1
还有一些类似TortoiseSVN的Git可视化工具:TortoiseGit和GitCheetah。 - RFelix
感谢提供比较信息。您能否收集一些具体数据,例如:所有文件的数量,所有文件的大小,平均大小,每天更改的数据量等等,并分别列出 SVN 和 GIT 的时间?我认为这样的白皮书对于 Git 社区来说会非常有用,可以作为有力的论证 :)。 - Grzegorz Wierzowiecki

13

Subversion,无疑。今天(2009年),TortoiseSVN提供了集成于资源管理器的Subversion库导航,并且最重要的是它支持任意Word文档的差异比较(它将差异推迟到Word本身,但这个功能非常好用)。

没有理由为什么 TortoiseGit 不能拥有同样的功能,但这种稳定形式的东西目前还不存在。幸运的是,将Subversion存储库迁移到Git很容易在未来的任何时间进行。

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


24
这篇文章比较的是TortoiseSVN和TortoiseGit,而不是svn和git。它还假定用户是使用微软Windows系统,且不会使用官方的svn或git客户端。这里有太多的假设了。我有一个关于JPEG而不是文档的完全相同的问题,但是我发现答案与我的问题无关。 - WhyNotHugo
2
请查看《Pro Git》一书中的第_章“Git属性”_。它解释了如何为特定的文件类型设置差异工具。 - jnns
没关系,TortoiseGit现在原生支持比较Word文档 :-) - jnns
如果您不需要推送评论或文件锁定,请考虑查看Sparkleshare。它是基于Git的“私人Dropbox”,几乎支持每个平台的客户端。 - frandevel

3

TortoiseGit支持Office文件的完整git工作流程,将diff委托给Office本身处理。对于OpenDocument格式,它也可以委托给OpenOffice处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接