¿Es posible analizar el tamaño de un repositorio SubVersion?

10

¿Es posible saber cuánto espacio en disco usa cada proyecto en un repositorio de SubVersion?

Puedo consultar una copia de trabajo de cada proyecto y ver el tamaño que ocupa cada proyecto, pero no creo que eso abarque el tamaño total del proyecto (todas las revisiones).

Puedo buscar en el directorio "db" del repositorio, pero ninguno de los archivos allí tiene sentido. No creo que sea posible usarlos para determinar cuánto espacio ocupa cada proyecto.

Intenté el svn ls --verbosecomando, pero el tamaño que me da es solo el tamaño de los archivos reales en la revisión principal, no creo que incluya todas las revisiones.

Tal vez esto no sea posible, pero pensé en preguntar.

¡Gracias por adelantado!

BrianH
fuente

Respuestas:

1

Lo único que viene a mi mente es esto:

  • crear un nuevo repositorio vacío temporal

  • svnadmin volca el antiguo repositorio, filtre para retener solo un proyecto con svndumpfilter e impórtelo en el nuevo repositorio

  • mira el tamaño del nuevo repositorio, luego bórralo

Marius Gedminas
fuente
3

Utilicé esto recientemente pero lo cambié ligeramente para ser más 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"}'

solía

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

en lugar de si

($3 !="")

ya que proporciona un recuento de archivos más preciso

SteveB
fuente
2

Si usa la -ropción, puede especificar una revisión.

Por ejemplo, la revisión 1000:

svn ls -vR -r 1000
Abel Robertson
fuente
1

El tamaño del repositorio se puede encontrar usando el siguiente comando.

Aunque esto no produce los resultados exactos todo el tiempo, encontré que esto fue útil la mayoría de las veces.

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
fuente
1

Si tiene acceso a la terminal del servidor, puede usar du (disco usado):

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

eso le da la cantidad total de espacio utilizado por ese repositorio en el servidor, incluida la base de datos generalmente pequeña.

Mi b
fuente