是否有可能知道 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
它为您提供了服务器上该存储库使用的总空间量,包括通常较小的数据库。