SVN repo 在转储/加载后缩小了 3 倍

SVN repo 在转储/加载后缩小了 3 倍

我在运行 RHL9 的旧 svn 服务器上有一个 repo。svn 版本是 1.1.4。该 repo 大小为 1.1GB ( du -sh $REPO),其完整转储大小为 1.7GB。我将转储加载到运行在 ubuntu 16.04 上的最新 svn 服务器上,svn 版本为 1.9.3。我运行以下命令:

svnadmin load --bypass-prop-validation -q "/path/to/repo.svn" < "/path/to/repo.dump"

现在,该 repo 大小只有 412MB(du -sh)。

我只管理服务器,我自己不使用 svn。当我查看 Tortoise 上的 repo 日志时,似乎所有修订和所有文档都在这里(无法手动检查所有内容,3733 次修订)。

但我不知道如何检查这种尺寸差异是否导致数据丢失。

我怎么知道?(从 tortoise 或服务器 cli,我是 root)这种尺寸差异让你感到震惊吗?

答案1

我认为,在 SVN 1.4 之后,SVN 已经做了很多工作来减少存储库的大小,因此现在您可以看到这些开发工作的成果(SVN原始源)。

  1. 新的存储库不包含旧的无效转换(在 SVN 1.1 中未删除)
  2. 较旧的 SVN 存储库不以压缩形式存储文件内容
  3. 修改的增量信息现在也以压缩形式存储,从而节省了以后的修订文件
  4. SVN 引入了表示共享,这意味着两个相同的文件只存储一次。这可以通过svnadmin pack命令进行优化(将 1000 个版本打包成一个文件并删除所有内容的重复项)

现代算法可以将较长的文本压缩到约 15% 或更少。请参阅这里了解有关压缩的更多数字和数据。

答案2

抽查仓库是否从 HEAD、最后几个重要提交以及可能从一开始就看起来是合理的。仅根据需要回溯:开发、支持以及合规性。

对转储进行备份,并在您认为需要时将其存档。

要量化摆脱每个修订文件所获得的好处,请尝试svnadmin pack在原始仓库的副本上。

相关内容