2011-12-28 79 views
4

可能重复:
How much space do I need for Git vs SVN?Git是否需要比SVN更多的空间?

据我所知Git和SVN之间的一个重要区别是:“SVN是增量存储系统 - 它存储一个之间的差异提交和下,而Git没有这样做 - 它会在每次提交时存储项目中所有文件在树结构中的样子。

那么,这是否意味着Git需要比SVN更多的空间,因为它存储所有快照而不是增量?

回答

0

实际上,.git目录比.svn小,因为git压缩数据的好处并且由于它的设计而不会保留一些无用的快照。它也使用deltas!

6

我认为你已经倒退了,至少就它在磁盘上如何摆脱了它。

使用SVN,您签出的每个分支都是完整副本加上增量。所以两个分支意味着两个完整的文件集加上所有的SVN diff信息。另一方面,Git保留文件的单个副本以及包含差异信息的所有快照。因此对于多个分支,Git将始终更小。

4

Pro Git"Packfiles"

在GIT中保存在磁盘上的对象被称为 松散对象格式的初始格式。然而,偶尔Git会将这些对象的几个部分打包到一个称为packfile的二进制文件中,以便节省空间并提高效率。如果您手动运行git gc命令,或者如果您推送到远程服务器,则Git会执行此操作,前提是您周围有太多松散的对象 。

正如你可以看到Git并不总是单独存储文件的每个版本并使用差异。另外,Git使用zlib压缩每个文件,至少对于纯文本源代码文件是非常有效的。

仍然很难确定Git是否使用比SVN更多或更少的空间。其中一个原因是,SVN只在本地存储最后一个版本,而git则在机器上拥有完整的存储库副本。因此,您无法将SVN中一个版本使用的空间与Git中完整存储库使用的空间进行比较。

将服务器上SVN仓库使用的空间与空间Git仓库进行比较,至少取决于存储在其中的特定修订历史和文件类型。

相关问题