SubVersionリポジトリのサイズを分析することは可能ですか?


9

SubVersionリポジトリの各プロジェクトが使用しているディスク容量を知ることはできますか?

各プロジェクトの作業コピーをチェックアウトして各プロジェクトが占めるサイズを調べることはできますが、それがプロジェクトの合計サイズ(すべてのリビジョン)を網羅しているとは思いません。

リポジトリの "db"ディレクトリを見ることはできますが、そこにあるファイルのどれも意味がありません - 各プロジェクトがどれだけのスペースを占有しているかを把握するためにそれらを使用することは不可能です。

私が試した svn ls --verbose しかし、それが私に与えるサイズはヘッドリビジョンの実際のファイルのサイズにすぎません、私はそれがすべてのリビジョンを含むとは思いません。

たぶんこれは不可能ですが、私は私が尋ねると思いました。

前もって感謝します!

回答:


0

私の頭に浮かぶ唯一のものはこれです:

  • 一時的に新しい空のリポジトリを作成する

  • svnadminは古いリポジトリをダンプし、svndumpfilterを使用して単一のプロジェクトのみを保持するようにフィルタ処理し、それを新しいリポジトリにインポートします。

  • 新しいリポジトリのサイズを見て、それを削除します


2

あなたが使用する場合 -r オプションでは、リビジョンを指定できます。

たとえば、リビジョン1000

svn ls -vR -r 1000

2

私は最近これを使用しましたが、より正確になるように少し変更しました

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 !="")

より正確なファイル数が得られるので


1

サーバ端末にアクセスできる場合はdu(使用ディスク)を使用できます。

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

これにより、サーバー上のそのリポジトリで使用されているスペースの合計量がわかります。 通常小さいデータベースを含みます。


0

リポジトリのサイズは以下のコマンドで確認できます。

これは常に正確な結果を生み出すわけではありませんが、私はこれがほとんどの場合に役立つことがわかった。

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"}'.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.