最大リポジトリサイズのフリーミアムサイトでホストされているSVNリポジトリがあります。この容量に近づくと、チェックインしたファイルを認識し、ディスク領域を解放するために完全に削除できることがわかります。ファイルを削除できるだけでなく、履歴も削除できることをSVNに伝えるにはどうすればよいですか?
3 に答える
Subversionには、特定のファイルをバージョン管理しないように、または少なくとも削除時にファイルを忘れないように指示する方法はないと思います。それはバージョン管理システムの目的を打ち負かすので。ローカルリポジトリがある場合は、いくつかの調整によってこれを実現できます。ただし、リポジトリへの管理者アクセスがないと、これを行うことは不可能になります。
それが役立つ場合、rsvndumpはリモートリポジトリのダンプを取得するためのツールです。これにより、リポジトリダンプをローカルシステムに取得できるようになります。不要なファイルを削除するには、このコマンド「cat xxx-svn-dump | svndumpfilter Exclusive $file>new-svn-dump」を使用できます。これにより、リポジトリのサイズを縮小できますが、元のリポジトリをこのコンテンツで更新することはできません。
これを見てください:
http://subversion.apache.org/faq.html#removalによると:
ファイルまたはコミットのすべての証拠を破棄したい場合がある特別な場合があります。(おそらく誰かが誤って機密文書をコミットしました。)Subversionは情報を決して失わないように意図的に設計されているため、これはそれほど簡単ではありません。リビジョンは、相互に構築される不変のツリーです。履歴からリビジョンを削除すると、ドミノ効果が発生し、後続のすべてのリビジョンで混乱が生じ、すべての作業コピーが無効になる可能性があります。
このSOの答えで考えられる解決策:
また、あなたはあなたの歴史を剪定することができます。100のリビジョンがあるとすると、最新の履歴、たとえば50のリビジョンを保持できます。これにより、Subversionリポジトリのサイズも縮小される可能性があります。
svnadmin dump /path/to/current/repo -r50:100 > newsvn.dump
# you can delete the old repo and then
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < newsvn.dump