Czy można analizować rozmiar repozytorium SubVersion?


10

Czy można wiedzieć, ile miejsca na dysku zajmuje każdy projekt w repozytorium SubVersion?

Mogę sprawdzić kopię roboczą każdego projektu i spojrzeć na rozmiar każdego projektu, ale nie sądzę, aby obejmował on całkowity rozmiar projektu (wszystkie wersje).

Mogę zajrzeć do katalogu „db” repozytorium, ale żaden z tamtych plików nie ma sensu - nie sądzę, że można ich użyć, aby dowiedzieć się, ile miejsca zajmuje każdy projekt.

Próbowałem tego svn ls --verbosepolecenia, ale rozmiar, który mi daje, to tylko rozmiar rzeczywistych plików w rewizji głównej, nie sądzę, aby zawierał wszystkie wersje.

Może to nie jest możliwe, ale pomyślałem, że zapytam.

Z góry dziękuję!

Odpowiedzi:


1

Jedyne, co przychodzi mi na myśl, to:

  • utwórz tymczasowe nowe puste repozytorium

  • svnadmin zrzuca stare repozytorium, filtruje je, aby zachować tylko jeden projekt z svndumpfilter, i importuje je do nowego repozytorium

  • sprawdź rozmiar nowego repozytorium, a następnie usuń go


3

Użyłem tego niedawno, ale zmieniłem go nieco, aby był bardziej dokładny

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

użyłem

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

zamiast jeśli

($3 !="")

ponieważ daje dokładniejszą liczbę plików


2

Jeśli skorzystasz z tej -ropcji, możesz określić wersję.

Na przykład wersja 1000:

svn ls -vR -r 1000

1

Rozmiar repozytorium można znaleźć za pomocą następującego polecenia.

Chociaż nie zawsze daje to dokładne wyniki, przez większość czasu uważałem to za pomocne.

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

Jeśli masz dostęp do terminala serwera, możesz użyć du (użyty dysk):

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

daje to całkowitą ilość miejsca używanego przez to repozytorium na serwerze, w tym zwykle małą bazę danych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.