大きな Subversion リポジトリから独自のリポジトリにディレクトリを分割し、そのディレクトリ内のファイルの履歴を保持したいと考えています。
最初はいつものやり方でやってみた
svnadmin dump /path/to/repo > largerepo.dump
cat largerepo.dump | svndumpfilter include my/directory >mydir.dump
しかし、それは機能しません。ディレクトリは何年にもわたって移動およびコピーされており、ファイルはリポジトリの他の部分に移動されたり、そこから移動されたりしているためです。結果はこれらの多くです:
svndumpfilter: Invalid copy source path '/some/old/path'
次に試したのは、それら/some/old/path
が表示されるとおりに含めることです。ファイルとディレクトリの長いリストが含まれた後、svndumpfilter は完了しますが、結果のダンプをインポートしても、現在のディレクトリと同じファイルが生成されません。
では、履歴を保持しながら、そのリポジトリからディレクトリを適切に分割するにはどうすればよいですか?
編集:私は特にtrunk/myproj
新しいリポジトリのトランクになりたいと思っています。さらに、新しいリポジトリには他の古いものは含まれていません。分割前に古いリビジョンに更新してファイルを取得/表示する可能性は誰にもありません。
私が試した svndumpfilter ソリューションはまさにそれを達成しますが、パス/ファイルが移動されているため、残念ながら実行できません。関連するmyproj履歴だけでなく、すべての履歴を保持する基本的にクローン+エクストラの削除であるため、ngによるソリューションは受け入れられません。