SVN存储库大小相对于已提交的二进制文件

时间:2011-08-13 04:44:30

标签: svn

为了更好地理解SVN如何处理二进制文件,我尝试了一些实验。我希望发现SVN会识别不同位置的相同二进制文件,而不是创建同一文件的多个副本。我发现的问题比答案更多。我希望有一位SVN专家可以帮助我理解这一点。

注1:MyTest.dll为2,108 kb

注2:我意识到SVN在幕后做了一些压缩,但仍然无法解释结果。

以下是实验:

1。)我创建了一个新的仓库

2.)我将MyTest.dll添加到trunk&承诺 - > repo size = 66 k

3.)添加了/ 1 /和/1/MyTest.dll&承诺 - > repo size = 735 k

4.)添加了/ 2 /和/2/MyTest.dll&承诺 - > repo size = 2 mb

5.)添加了/ 3 /和/3/MyTest.dll&承诺 - >回购尺寸= 2.1 mb

6。)添加了/ 4 /和/4/MyTest.dll&承诺 - >回购尺寸= 3.4 mb

有人可以解释为什么每次提交的回购协议大小的变化相对于提交的实际内容而言是如此随机?

谢谢!

2 个答案:

答案 0 :(得分:1)

不,它不会搜索整个存储库(可能是千兆字节)来查看文件是否已经提交。

仅当您svn copy存储库中的文件时,才会引入新副本。

答案 1 :(得分:0)

Repo的增长非常大(即使您只处理少量文件),因为每次提交的所有更改都会保存,以便您随时可以恢复到较旧的文件。 SVN和相关工具有很多信息可用于内务管理以及文件的缓存/索引,这些信息往往会占用空间。根据每次提交更改的文件数量通常是repo大小的增加,因为这些提交“补丁”文件是在内部创建的,因此SVN知道哪些更改确实允许恢复功能全部工作返回提交的方法1.很难解释其中正在使用的其余空间正在填充的地方,因为我大部分时间都使用git而git往往有时会有较小的repo但它可能只是内部SVN用于其功能的东西。我希望这有助于澄清一些事情。