5

bin ファイル (画像、トラフィック トレースのダンプなど) を含む Subversion リポジトリがいくつかあります。問題は、これらのファイルに対する複数のコミットにより、非常に大きなリポジトリが作成されたことです。レポは履歴目的でのみ保持しているため、レポの履歴をリセットすることはできますか? 私は基本的に、コンテンツをエクスポートしてレポを再作成するための簡単な代替手段を探しています。

4

4 に答える 4

5

Rob - Delete parts of subversion historyによると、たとえば、バージョン 9000 より下のすべてを削除したい場合 (リポジトリは現在バージョン 10000 になっています)、これを試すことができます。

 svnadmin dump /path/to/current/repo -r9000:10000 > svn.dump
 svnadmin create /path/to/new/repo
 svnadmin load /path/to/new/repo < svn.dump
于 2015-09-02T10:51:22.493 に答える
4

Subversion リポジトリから履歴を削除する方法はありません。

Subversion またはソース管理システムを使用する標準的な方法は、独自のソースファイルからビルドされたファイルを保存しないことです。たとえば、実行可能ファイルをビルドする場合、ソースは Subversion に保存する必要がありますが、実行可能ファイルは保存しないでください。

代わりに、ビルドされたアーティファクトをリリース サーバーに保存します。これは、Maven リポジトリと同じくらい複雑にすることも、ビルドされたアーティファクトを必要とするプロジェクトから簡単にアクセスできるように、これらのものを格納するリモート マシン上の単なるディレクトリ レイアウトにすることもできます。少し手間がかかりますが、ソース リポジトリが肥大化することはありません。

私の提案は、まずビルド プロセスを再構築して、何らかのリリース リポジトリを使用することです。環境については言及していませんが、Java の場合はArtifactoryNexusなどの Maven リポジトリを見てください。Maven を使用する必要はありません。Ant を使用している場合は、Ant と非常にうまく統合されているIvyを調べてください。または、<wget>必要なアーティファクトを取得するために使用します。

C/C++ の世界にいる場合は、、、、、またはを使用ftpしてscp、リリース リポジトリから必要なアーティファクトをフェッチしてコピーできます。curlwgetNFS

リリース リポジトリのセットアップが完了したら、Subversion のダンプ/フィルター/ロードを実行して不要なバイナリを削除します。


1.まあ、簡単な方法ではありません。ただし、ドリル、ダンプ、フィルター、ロードを知っていることは既に述べました。

于 2012-12-24T17:46:59.297 に答える