web-dev-qa-db-ja.com

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

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

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

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

svn ls --verboseコマンドですが、このコマンドで得られるサイズは、最新リビジョンの実際のファイルのサイズにすぎません。すべてのリビジョンが含まれているとは思いません。

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

前もって感謝します!

10
BrianH

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

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

  • svnadminは古いリポジトリをダンプし、svndumpfilterでそれをフィルタリングして単一のプロジェクトのみを保持し、新しいリポジトリにインポートします

  • 新しいリポジトリのサイズを確認してから、削除します

1
Marius Gedminas

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

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]/) 

の代わりに

($3 !="")

より正確なファイル数が得られるため

3
SteveB

-rオプションを使用すると、リビジョンを指定できます。

たとえば、リビジョン1000:

svn ls -vR -r 1000
2
Abel Robertson

リポジトリのサイズは、次のコマンドを使用して確認できます。

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

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
ijeyanthan

サーバーターミナルにアクセスできる場合は、du(使用ディスク)を使用できます。

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

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

1
MyB