SubVersion 저장소의 크기를 분석 할 수 있습니까?


10

SubVersion 저장소의 각 프로젝트에서 사용중인 디스크 공간을 알 수 있습니까?

각 프로젝트의 작업 사본을 확인하고 각 프로젝트가 차지하는 크기를 볼 수 있지만 프로젝트의 전체 크기 (모든 개정)를 포함한다고 생각하지는 않습니다.

리포지토리의 "db"디렉토리를 볼 수는 있지만 거기에있는 파일 중 어느 것도 의미가 없습니다. 각 프로젝트가 차지하는 공간을 파악하기 위해 파일을 사용할 수 없다고 생각합니다.

나는 svn ls --verbose명령을 시도했지만 그것이주는 크기는 헤드 개정판의 실제 파일의 크기 일 뿐이며 모든 개정판이 포함되어 있다고 생각하지는 않습니다.

어쩌면 이것이 가능하지는 않지만 물어볼 것이라고 생각했습니다.

미리 감사드립니다!

답변:


1

내 마음에 오는 유일한 것은 이것입니다.

  • 임시 빈 저장소를 새로 만듭니다.

  • svnadmin은 이전 저장소를 덤프하고 svndumpfilter를 사용하여 단일 프로젝트 만 보유하도록 필터링 한 후 새 저장소로 가져옵니다.

  • 새 저장소의 크기를보고 삭제하십시오.


3

최근에 이것을 사용했지만 좀 더 정확하도록 약간 변경했습니다.

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

나는 사용했다

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

if 대신

($3 !="")

더 정확한 파일 수를 제공하기 때문에


2

-r옵션 을 사용하면 개정을 지정할 수 있습니다.

예를 들어 개정 1000 :

svn ls -vR -r 1000

1

저장소의 크기는 다음 명령을 사용하여 찾을 수 있습니다.

이것이 항상 정확한 결과를 낳지는 않지만, 나는 이것이 대부분 도움이된다는 것을 알았습니다.

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

서버 터미널에 액세스 할 수 있으면 du (디스크 사용)를 사용할 수 있습니다.

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

일반적으로 작은 데이터베이스를 포함하여 서버에서 해당 리포지토리가 사용하는 총 공간을 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.