Ist es möglich, die Größe eines SubVersion-Repositorys zu analysieren?

10

Ist es möglich zu wissen, wie viel Speicherplatz jedes Projekt in einem SubVersion-Repository verwendet?

Ich kann mir eine Arbeitskopie jedes Projekts ansehen und mir die Größe ansehen, die jedes Projekt einnimmt, aber ich denke nicht, dass dies die Gesamtgröße des Projekts umfasst (alle Überarbeitungen).

Ich kann im Verzeichnis "db" des Repositorys nachsehen, aber keine der Dateien dort ist sinnvoll - ich glaube nicht, dass es möglich ist, sie zu verwenden, um herauszufinden, wie viel Speicherplatz jedes Projekt belegt.

Ich habe den svn ls --verboseBefehl ausprobiert , aber die Größe, die er mir gibt, entspricht nur der Größe der tatsächlichen Dateien in der Kopfversion. Ich glaube nicht, dass er alle Versionen enthält.

Vielleicht ist das nicht möglich, aber ich dachte, ich würde fragen.

Danke im Voraus!

BrianH
quelle

Antworten:

1

Das einzige, was mir in den Sinn kommt, ist Folgendes:

  • Erstellen Sie ein temporäres neues leeres Repository

  • svnadmin speichert das alte Repository, filtert es, um nur ein einziges Projekt mit svndumpfilter beizubehalten, und importiert es in das neue Repository

  • Überprüfen Sie die Größe des neuen Repositorys und löschen Sie es

Marius Gedminas
quelle
3

Ich habe dies kürzlich verwendet, es aber leicht geändert, um es genauer zu machen

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"}'

ich benutzte

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

statt wenn

($3 !="")

da es eine genauere Anzahl von Dateien gibt

SteveB
quelle
2

Wenn Sie die -rOption verwenden, können Sie eine Revision angeben.

Zum Beispiel Revision 1000:

svn ls -vR -r 1000
Abel Robertson
quelle
1

Die Größe des Repositorys kann mit dem folgenden Befehl ermittelt werden.

Obwohl dies nicht immer zu exakten Ergebnissen führt, fand ich dies meistens hilfreich.

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"}'.
ijeyanthan
quelle
1

Wenn Sie Zugriff auf das Serverterminal haben, können Sie du (verwendete Festplatte) verwenden:

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

Dadurch erhalten Sie die Gesamtmenge an Speicherplatz, die von diesem Repo auf dem Server verwendet wird, einschließlich der normalerweise kleinen Datenbank.

MyB
quelle