1

前文

私の SVN ホスティングは、使用量を 300MB に制限するサードパーティによって提供されています。プロジェクトの規模は中程度なので、これが問題になるとは想像もしていませんでした。アプリが本番環境に入ると、何らかのバックアップ メカニズムが必要であることに気付きました。そこで、データベースをエクスポートし、ユーザーがアップロードしたファイルを圧縮するシェル スクリプトを作成しました。次に、.sql ファイルと .zip ファイルの両方を SVN にコミットします (SVN サーバーはアプリと同じマシンでは実行されません)。

すると今日、定員を超えていることに気づきました。これはバックアップが原因であるに違いないとすぐに気付きました。

最後に...質問

.zip はバイナリ ファイルなので、コミットされるたびにファイル全体がリポジトリに追加されると思います (一方、テキスト ファイルの場合は差分のみが追加されます)。.zip ファイルは現在約 60 MB であるため、バックアップ スクリプトが毎日実行されることを考えると、SVN には 5 日分のバックアップしか保存できません。

とにかく、次の方法で状況を改善する予定です。

  • バックアップ スクリプトを変更して、.zip のサイズを SVN の最新の .zip と比較し、それらが異なる場合にのみコミットするようにします。バックアップが最後に実行されてからユーザーがファイルをアップロードしていない場合、2 つのサイズは同じになります。

  • 古いバージョンの .zip ファイルをすべて SVN から削除して、クォータを解放します。しかし、これが実際に可能かどうかはわかりませんか?私の理解では、作業コピーからファイルを削除して削除をコミットしても、ファイルはリポジトリの HEAD から削除されますが、以前にコミットされたバージョンはすべてそこに残ります (私の貴重なクォータを使い果たします)。

古いバージョンの .zip をすべて完全に削除し、上記のより効率的なバックアップ戦略を新たに開始する方法はありますか。

4

1 に答える 1

2

状況を修正するには、次のことを行う必要があります。

  • 可能であれば、コミットされたすべての zip ファイルをリポジトリから削除します。SVN レッド ブックの「リポジトリ履歴のフィルタリング」の章を参照してください。
  • 今後、zip ファイルを別の場所に保存します。バイナリ差分がうまく機能したとしても、大きなバイナリを SVN リポジトリに追加することはお勧めできません。

バイナリ データを含めると、200 MB は多くありません。ソースのみの場合は、それで十分です。

于 2012-05-31T15:13:33.543 に答える