web-dev-qa-db-ja.com

ローカルSVNリポジトリからデータを削除するにはどうすればよいですか?

単に「フォルダの作成」を使用する必要があったのに、TortoiseSVNの「フォルダの追加」オプションを使用して誤って大量のバイナリファイルをコミットしました。これらのバイナリファイルは私のHDに多くのスペースを占有し、とにかくバージョン管理の恩恵を受けないため、SVNには必要ありません。ただし、これらすべてのバイナリファイルをコミットするために使用されたメモリを実際に解放するような方法でこの混乱を元に戻すための最善の方法がわかりません。すべてのファイルを簡単に削除してコミットできますが、これによって関連データがSVNから、特にファイルが追加されたリビジョンから実際に削除されるとは確信していません。

SVNリポジトリディレクトリを調べたところ、巨大なファイル「db/revs/67」が見つかりました。これは、これらのファイルが追加されたリビジョン67のデータを表していると思います。そのファイルを単に削除できますか、それともSVNに問題が発生しますか? SVNがそれらのリビジョンが存在しなかったかのように動作するように、他の場所でファイルを削除または変更する必要があるようです。

2
Aaron

SVN履歴からリビジョンを安全に完全に削除するには、リビジョンを削除した状態でリポジトリをエクスポートしてから、ダンプファイルから復元する必要があります。これを行うには、ターミナルまたはWindowsコマンドプロンプトで次のコマンドを実行します。

svnadmin dump /path/to/repo -r1:66 > svn.dump
ren /path/to/repo /path/to/backup
svnadmin create /path/to/repo
svnadmin load /path/to/repo < svn.dump

(* nixシステムでは、renmvに置き換えます。)

新しいリポジトリですべて問題がないことを確認したら、バックアップを削除できます。

svn:ignoreプロパティを使用して、これらのファイルが将来リポジトリにコミットされないようにすることを検討してください。 TortoiseSVNでファイルを右クリックし、TortoiseSVNに移動し、リストを無視するために追加を選択すると、ファイルを無視リストに追加できます。

3
Patches