我在Mac上使用Versions应用程序处理我的文件的SVN版本库。我的工作副本大小约为6 MB,但是我的版本库只有1.4 MB,并且我在版本库中保存了五个版本!
为什么会这样呢?
我在Mac上使用Versions应用程序处理我的文件的SVN版本库。我的工作副本大小约为6 MB,但是我的版本库只有1.4 MB,并且我在版本库中保存了五个版本!
为什么会这样呢?
SVN使用差异压缩技术来存储代码的每一个版本之间的差异,因此它不占用太多空间。
为了保持仓库较小,Subversion在仓库本身中使用增量存储技术。增量存储涉及将数据块的表示编码为针对某些其他数据块的一系列差异。如果两个数据块非常相似,则这种增量存储会为增量存储的数据块带来存储节省-与占据原始数据大小相等的空间不同,它只占据足够的空间以表达“我看起来就像这里面的另一块数据,除了以下几处变化”。结果是,大部分仓库数据往往会占用较多空间-即版本文件的内容比原始全文表示形式要小得多。对于使用 Subversion 1.4 或更高版本创建的仓库,节省的空间甚至更多-现在文件内容的全文表示形式也已经被压缩。
更多详细信息可以在此处找到。
.svn
文件夹中保留了每个文件的原始副本。这使得Subversion能够处理svn status
或svn diff
命令而不需要联系仓库服务器,但它会使您的工作副本大小翻倍。你的工作副本通常包含许多额外的临时文件,例如目标代码和预编译头文件,这些文件不需要进行版本控制。我猜如果你清理工作副本,或者重新检出,它会变得更小。