【问题标题】:SVN repository size relative to committed binary files相对于提交的二进制文件的 SVN 存储库大小
【发布时间】:2011-08-13 04:44:29
【问题描述】:

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

注 1:MyTest.dll 为 2,108 kb

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

这是实验:

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

2.) 我将 MyTest.dll 添加到主干并提交 -> 存储库大小 = 66 k

3.) 添加 /1/ 和 /1/MyTest.dll 并提交 -> repo size = 735 k

4.) 添加 /2/ 和 /2/MyTest.dll 并提交 -> 存储库大小 = 2 mb

5.) 添加 /3/ 和 /3/MyTest.dll 并提交 -> 存储库大小 = 2.1 mb

6.) 添加 /4/ 和 /4/MyTest.dll 并提交 -> 存储库大小 =3.4 mb

任何人都可以解释为什么每次提交时 repo 大小的变化相对于提交的实际内容显得如此随机吗?

谢谢!

【问题讨论】:

    标签: svn


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。听起来 SVN Copy 可以满足我的需要。
    【解决方案2】:

    Repo 变得非常大(即使您只处理少量文件),因为每次提交的所有更改都已保存,因此您可以随时恢复到旧文件。 SVN 和相关工具保留了很多信息,用于管理和缓存/索引文件,这些信息往往会占用空间。取决于每次提交更改了多少文件,通常会增加存储库的大小,因为这些提交“补丁”文件是在内部创建的,因此 SVN 知道确切的更改是什么,这允许恢复功能在所有的回到提交 1. 很难真正解释正在使用的其余大部分空间在哪里被填充,因为我大部分时间都使用 git,而且 git 有时往往有较小的 repo,但它可能只是内部的SVN 用于其功能的东西。我希望这有助于澄清一些事情。

    【讨论】:

    • 感谢您的回复。毫无疑问,SVN 在幕后做了很多工作来支持所有版本控制功能。与提交的实际内容相比,每次提交时存储库的增长似乎有点随机。
    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多