Est-il possible d'analyser la taille d'un référentiel SubVersion?

10

Est-il possible de savoir combien d'espace disque chaque projet d'un référentiel SubVersion utilise?

Je peux consulter une copie de travail de chaque projet et regarder la taille de chaque projet, mais je ne pense pas que cela englobe la taille totale du projet (toutes les révisions).

Je peux regarder sous le répertoire "db" du dépôt, mais aucun des fichiers qu'il contient n'a de sens - je ne pense pas qu'il soit possible de les utiliser pour déterminer combien d'espace chaque projet occupe.

J'ai essayé la svn ls --verbosecommande, mais la taille qu'elle me donne est juste la taille des fichiers réels dans la révision de tête, je ne pense pas qu'elle inclut toutes les révisions.

Peut-être que ce n'est pas possible, mais j'ai pensé que je demanderais.

Merci d'avance!

BrianH
la source

Réponses:

1

La seule chose qui me vient à l'esprit est la suivante:

  • créer un nouveau référentiel vide temporaire

  • svnadmin vider l'ancien référentiel, le filtrer pour conserver un seul projet avec svndumpfilter et l'importer dans le nouveau référentiel

  • regardez la taille du nouveau dépôt, puis supprimez-le

Marius Gedminas
la source
3

Je l'ai utilisé récemment, mais je l'ai légèrement changé pour être plus précis

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

j'ai utilisé

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

au lieu de si

($3 !="")

car il donne un nombre de fichiers plus précis

SteveB
la source
2

Si vous utilisez l' -roption, vous pouvez spécifier une révision.

Par exemple, révision 1000:

svn ls -vR -r 1000
Abel Robertson
la source
1

La taille du référentiel peut être trouvée à l'aide de la commande suivante.

Bien que cela ne produise pas les résultats exacts tout le temps, j'ai trouvé cela utile la plupart du temps.

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
la source
1

Si vous avez accès au terminal serveur, vous pouvez utiliser du (disque utilisé):

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

qui vous donne la quantité totale d'espace utilisée par ce dépôt sur le serveur, y compris la base de données généralement petite.

MyB
la source