--- lang: ja-jp breaks: true --- # svn 不要な履歴データを削除してリポジトリサイズを最適化する 2021-04-10 > 【Subversion】誤コミットの取り消し(svnadmin dump | svndumpfilter exclude) > https://www.tcmobile.jp/dev_blog/infrastructure/%E3%80%90subversion%E3%80%91%E8%AA%A4%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%AE%E5%8F%96%E3%82%8A%E6%B6%88%E3%81%97%EF%BC%88svnadmin-dump-svndumpfilter-exclude%EF%BC%89/ ### 1. 現在のリポジトリから、削除したいパスを指定してダンプする。 ```= >"C:\Program Files\VisualSVN Server\bin\svnadmin.exe" dump "D:\Repositories\xxxRepName" | "C:\Program Files\VisualSVN Server\bin\svndumpfilter.exe" exclude /AI/doc > NewRepName.dmp ``` ### 2. ダンプ中に発生したエラーの解消 以下のエラーは、コピー元となっているパスが、ダンプ時に除外されている為に「コピー元が不正である」と報告しているもの。 基本的な対応としては、exclude、include の指定内容を工夫するしかないようだ。 ``` Revision 1615 committed as 1615. svndumpfilter: E200003: Invalid copy source path '/AI/ml.net/samples/ConsoleApp2/ConsoleApp2/orders' for '/xxxxxx/bbbbb/dotnet/ConsoleApp1/ConsoleApp1/orders' ``` > [Subversion]巨大なリポジトリから多数の不要ファイルを恒久的に削除する方法http://dqn.sakusakutto.jp/2012/08/svndumpfilter_subversion.html > svndumpfilter は意外と使えない > http://aligach.net/diary/20070911.html >svndumpfilter を使ってダンプを分割するとき、 > >Invalid copy source XXX >コピー元のパス xxx が不正です >やとなるとき、include の指定に、そのパスを追加すればよい。 https://tkkochan.hatenadiary.org/entries/2009/06/24 > レポジトリ分割の作業記録 > https://dayflower.hatenablog.com/entry/20071128/1196215149 ### 3. 変更したいリポジトリをバックアップ後、削除する。 ### 4. 元々のリポジトリと同じ名前で新規のリポジトリを作成する。 ※conf、hooks の設定を同じ設定にする事を忘れずに。 ### 5. 新しく作成したリポジトリにダンプファイルを復元する。 ```= >"C:\Program Files\VisualSVN Server\bin\svnadmin.exe" load "D:\Repositories\xxxRepName" < NewRepName.dmp ``` ###### tags: `svn` `svndumpfilter`