hilfreich sein, Sie haben die XML-Modus der Größe Subversion Befehl list und Summe über die Datei verwenden können .
Unter 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)}'
Beachten Sie, dass die Festplattennutzung einer tatsächlichen SVN-Kasse ist im Grunde doppelt so viel wie zuvor, weil in der Kasse berechnet Sie die Dateien im Arbeitsverzeichnis haben und in der Revision Cache unter den .svn
speziellen Verzeichnissen/Verzeichnissen.
Alternativ, wenn Sie nicht allzu besorgt über RAM-Nutzung sind verwenden Sie einen XPath-Ausdruck, um die Summe zu berechnen, zum Beispiel:
$ 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')
Oder:
$ 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' -)
Mit einer solchen XPath-Prozessor auf Ein Repository mit vielen Dateien kann zu einer hohen Speicherauslastung führen, da Tools wie xmllint (die libxml2 verwendet) häufig den vollständigen Dokumentbaum im Speicher erstellen, bevor mit der Zusammenfassung der Elemente begonnen wird.
Scheint gut zu funktionieren, dauert aber eine schreckliche Weile und keine Ahnung, wie viel Verkehr schon verschlingt. In der PowerShell ist es so einfach wie: '([xml] (svn list --xml --recursive https: // svn/repo/pfad)) .lists.list.entry | messen -sum size' – Joey
Funktioniert das auch mit externen Geräten? – cetnar
Nein. Externals sind ein ganz anderes Ballspiel. –