3

私は SVN プロバイダーを移動しています。そうすると、すべてのリポジトリが次のように開始https://www.provider1.com/myrepo1され、そのリポジトリで svn ダンプを実行しました。リポジトリ内でパスが開始しますtrunk/src, trunk/lib, など.ただし、新しいプロバイダーは単一の URL しか提供しません私のプロジェクトをそれらにダンプするために。そのため、ダンプ内のすべてのディレクトリの名前を変更して、各パスに新しい親を追加しmyrepo1/trunk/srcmyrepo1/trunk/lib、などのように見えるようにする必要があります。各 URL リポジトリに新しいディレクトリを作成し、フォルダをそこに移動できることに気付きました。しかし、それはその歴史を変えるものではありません。svndumpfilter を使用して、この親をダンプ ファイルに直接追加する方法はありますか? そうでない場合、どうすればよいですか?

4

2 に答える 2

1

あるいは、SVNKitに基づくsvnkitfilterを使用することもできます:

$ svnkitfilter OLD_ROOT_URL NEW_URL --prefix myrepo1
于 2012-08-02T02:26:11.367 に答える
1

これを機能させるために私がしたことは次のとおりです。結局、svndumpfilter を使用しませんでした。代わりに、新しいリポジトリを使用してsvnadmin作成し、その新しく作成された svn リポジトリに親ディレクトリを作成しました。svnadmin load次に、そのダンプを新しい親ディレクトリの下に置くように指示して、ダンプをロードしました。

最初にプロジェクトをプルダウンし、そのプロジェクトのダンプを作成します。

svnadmin create project1
emacs repo/hooks/pre-revprop-change
chmod 755 project1/hooks/pre-revprop-change
svnsync init file://$(pwd)/project1 https://somehost.com/svn/project1
svnsync sync file://$(pwd)/project1
svnadmin dump project1 > some.dump

次に、ダンプを新しい親ディレクトリにロードする新しい svn プロジェクトを作成します。

svnadmin create someDirectory
svn mkdir -m "Add root directory to project" file://$(pwd)/someDirectory/THE_PARENT_NAME
cat some.dump | svnadmin load --parent-dir THE_PARENT_NAME someDirectory
于 2012-08-01T17:55:24.597 に答える