是否可以分析 SubVersion 存储库的大小?

是否可以分析 SubVersion 存储库的大小?

是否有可能知道 SubVersion 存储库中每个项目使用了多少磁盘空间?

我可以检查每个项目的工作副本并查看每个项目占用的大小,但我认为这并不包含项目的总大小(所有修订版)。

我可以查看存储库的“db”目录,但其中的任何文件都没有意义——我认为不可能使用它们来确定每个项目占用了多少空间。

我尝试了该svn ls --verbose命令,但它给我的大小只是头部修订版中实际文件的大小,我认为它并不包含所有修订版。

或许这是不可能的,但我想我还是应该问一下。

提前致谢!

答案1

我唯一想到的就是这一点:

  • 创建一个临时的新空存储库

  • svnadmin 转储旧存储库,使用 svndumpfilter 对其进行过滤以仅保留单个项目,然后将其导入新存储库

  • 查看新存储库的大小,然后将其删除

答案2

我最近用过这个,但稍微改了一下,以便更准确

svn list -vR svn://server/repo/somedir | awk '{tmp=match($3,/[0-9]/);if(tmp){sum+=$3; i++}} END {print "\ntotal size= " sum/1024000" MB" "\nnumber of files= " i/1000 " K"}'

我用了

{tmp=match($3,/[0-9]/) 

而不是如果

($3 !="")

因为它可以提供更准确的文件数量

答案3

如果您使用该-r选项,则可以指定修订版。

例如,修订版 1000:

svn ls -vR -r 1000

答案4

如果您有权访问服务器终端,则可以使用 du(使用的磁盘):

du -sh /var/svn-repos/project-doomsday

它为您提供了服务器上该存储库使用的总空间量,包括通常较小的数据库。

相关内容