È possibile analizzare le dimensioni di un repository SubVersion?


10

È possibile sapere quanto spazio su disco utilizza ogni progetto in un repository SubVersion?

Posso controllare una copia funzionante di ogni progetto e vedere la dimensione che ogni progetto occupa, ma non penso che comprenda la dimensione totale del progetto (tutte le revisioni).

Posso guardare nella directory "db" del repository, ma nessuno dei file presenti ha senso - non penso che sia possibile usarli per capire quanto spazio occupa ogni progetto.

Ho provato il svn ls --verbosecomando, ma la dimensione che mi dà è solo la dimensione dei file effettivi nella revisione principale, non credo che includa tutte le revisioni.

Forse questo non è possibile, ma ho pensato di chiedere.

Grazie in anticipo!

Risposte:


1

L'unica cosa che mi viene in mente è questa:

  • creare un nuovo repository vuoto temporaneo

  • svnadmin scarica il vecchio repository, filtralo per conservare un solo progetto con svndumpfilter e importalo nel nuovo repository

  • osserva le dimensioni del nuovo repository, quindi eliminalo


3

L'ho usato di recente ma l'ho modificato leggermente per essere più preciso

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

ero solito

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

invece di se

($3 !="")

in quanto fornisce un conteggio dei file più accurato


2

Se si utilizza l' -ropzione, è possibile specificare una revisione.

Ad esempio, revisione 1000:

svn ls -vR -r 1000

1

La dimensione del repository può essere trovata usando il seguente comando.

Anche se questo non produce sempre i risultati esatti, l'ho trovato utile la maggior parte delle volte.

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

1

Se hai accesso al terminale del server puoi usare du (disco usato):

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

che ti dà la quantità totale di spazio utilizzato da quel repository sul server, incluso il database solitamente piccolo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.