このプロジェクトでは、ビルド済みのバイナリを使用してビルド時間を短縮することを決定しました。毎週/毎月、安定したリリースを作成し、リポジトリにコミットします。ビルドでは、ソースからすべてをビルドする代わりに、これらのバイナリを使用します。
ビルド速度については、これは素晴らしいです。しかし、当然のことながら、SVNチェックアウトのサイズは本当に大きくなります。現在、トランクのサイズは最大22GBです。これはSubversionの使用目的ではないことを理解しています。しかし、現時点では代替手段はありません。
しかし、私は現在の状況を改善したいと思います。 .svn
フォルダーは、ディスク上のトランクのサイズに大きく貢献します。バイナリが更新されると、.svnフォルダーにいくつかのベースが保持されるようです。つまり、バイナリが4GBの場合、.svn
にコピーがあります。更新された場合、.svn
フォルダーは元のベースと新しいベースを保持し、その1つのファイルに対して最大8GBを一括します。
特定のファイルのベースを.svn
フォルダーに保持しないようにSubversionに指示することはできますか?グーグルを通して、私は同様の質問を見つけました、。svnフォルダサイズを減らす方法?。
サイモンが受け取った答えは
幸いなことに、Subversion 1.8がリリースされました。この機能は追加されましたか?
リリースノート で気がつきませんでした。 「ディレクトリとプロパティのストレージ削減」は有望に見えますが。
この時点で原始的なものを保存する必要性を取り除く方法はありません。話題になっていますが、実際には簡単に解決できる問題ではありません。それらをオプションで削除すると、さまざまなユースケースの状況が発生するためです。
1.7では元のストレージが変更されました そして場合によっては実際には1.7以前よりも状況が悪化することがあります。現在、Pristineは、Pristineのハッシュによって名前が付けられたファイルに保管されます。したがって、同一のファイルが複数ある場合は、保存されている初期状態を複製することはできません。ただし、初期状態をクリーンアップしません。だから彼らはただ積み上げ続けているだけです。 svn cleanup
を使用して、未使用の初期値を削除するようトリガーできます。
未使用の初期状態を保持することにはポイントがあります。ブランチ間を切り替える場合、1.8で既に初期状態にあるものをダウンロードする必要はありません。
svn cleanup
コマンドではなくTortoiseSVNクライアントのCleanupコマンドを使用している場合、.svn
フォルダーのサイズは、Vacuumの初期コピーオプションがチェックされます:
また、 here のように、作業コピーの最上位でクリーンアップすることをお勧めします。
[編集]
この回答 および SVN変更ログ によると、svn cleanup
には、初期コピー(/vacuum
)をバキュームするオプションがあります。これは、1.8からデフォルトで実行されます。バージョン1.10以降では、デフォルトでは実行されなくなりましたが、コマンドsvn cleanup --vacuum-pristines
を使用して実行できます( this answer を参照)。