42

私は多くのプロジェクトでSVNリポジトリを使用しています。いくつかのプロジェクトをそのリポジトリから個々のリポジトリに移動する必要があります。プロジェクトごとに1つずつ、履歴を保持します。

svnadmin dumpリポジトリ全体とそれを別のリポジトリにダンプするために使用できましたがsvnadmin load、元のリポジトリから1つのプロジェクトだけをダンプする方法が見つからないため、新しいリポジトリにロードできます。これは可能ですか?もしそうなら、どのように?

4

2 に答える 2

66

これを行うには、 svndumpfilterユーティリティを使用できます。SVNの本には、これを行う方法についての良い説明があります。

たとえば、1つの方法は次のようになります。


$ svnadmin dump /path/to/repo 
     | svndumpfilter include /proj > dump-file
$ svnadmin create /new/proj/repo
$ svnadmin load --ignore-uuid /new/proj/repo < dump-file
$ svn rm file:///path/to/repo/proj
于 2008-12-03T13:33:28.380 に答える
0

@Aviの回答と@Kitのコメントへのほんの少しの追加。

を使用すると、リポジトリ ( sourcesvndumpfilter )のロードに必要なコミットが失われる可能性があります。

私の場合:

cat dump | svndumpfilter --drop-empty-revs --renumber-revs include trunk/project > project.dump 
svnadmin load --ignore-uuid /opt/svn/newlocation < project.dump
<<< Started new transaction, based on original revision 1 
svnadmin: File not found: transaction '0-0', path 'trunk/project'

解決策は、最初に上位ディレクトリをコミットすることでしたtrunk

于 2014-10-20T14:48:11.503 に答える