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


10

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

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

我可以在存储库的“ db”目录下查找,但是其中没有一个文件有意义-我认为无法使用它们来计算每个项目占用多少空间。

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

也许这是不可能的,但我想我会问。

提前致谢!

Answers:


1

我唯一想到的是:

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

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

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


3

我最近用过,但稍作更改以使其更加准确

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 !="")

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


2

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

例如,修订版1000:

svn ls -vR -r 1000

1

可以使用以下命令找到存储库的大小。

尽管这并不能始终产生确切的结果,但我发现大多数时候这都是有帮助的。

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

1

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

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

这将为您提供该存储库(包括通常较小的数据库)在服务器上使用的总空间量。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.