Вы можете использовать режим XML команды списка Subversion и суммировать по размеру файла.
В Linux / UNIX:
$ svn list --xml --recursive http://svn.example.org/module/trunk | awk -F'[><]' \
'/^ *<size>/ {s+=$3} END {printf("%.1f GiB\n", s/1024/1024/1024)}'
Обратите внимание, что использование диска при фактической проверке svn в основном вдвое больше, чем вычислено выше, потому что при оформлении покупки у вас есть файлы в рабочем каталоге и в кэше ревизий в специальном каталоге / 1006 * каталогах. *
В качестве альтернативы, если вы не слишком озабочены использованием ОЗУ, вы используете выражение XPath для вычисления суммы, например ::
$ printf '%.1f GiB\n' $(svn list --xml --recursive \
http://svn.example.org/module/trunk | xmlstarlet sel -t -v \
'sum(/lists/list/entry/size) div 1024 div 1024 div 1024')
Или:
$ printf '%.1f GiB\n' $(svn list --xml --recursive \
http://svn.example.org/module/trunk | xmllint --xpath \
'sum(/lists/list/entry/size) div 1024 div 1024 div 1024' -)
Использование такого процессора XPath в репозитории со многими файлами может привести к высокому использованию памяти, поскольку такие инструменты, как xmllint (использующий libxml2), часто создают полное дерево документов в памяти перед началом суммирования по элементам.