1

WindowsでSVNリポジトリをあるサーバーから別のサーバーに移動する必要があります。秘訣は、ネストされたリポジトリ内のプロジェクトからトランク、ブランチ、タグを除くすべてを除外したいということです。

現在、すべてのプロジェクトが存在する1つの大きなリポジトリ(MyBigRepo)があります。現在の構造は次のとおりです。

/Repositories/MyBigRepo/MyProject1/trunk
/Repositories/MyBigRepo/MyProject1/branches
/Repositories/MyBigRepo/MyProject1/tags

/Repositories/MyBigRepo/MyProject2/trunk
/Repositories/MyBigRepo/MyProject2/branches
/Repositories/MyBigRepo/MyProject2/tags

/Repositories/MyBigRepo/MyProject3/trunk
/Repositories/MyBigRepo/MyProject3/branches
/Repositories/MyBigRepo/MyProject3/tags

移動したいのですが、メインフォルダーを除外し、トランク、ブランチ、タグをリポジトリから移動MyProject1したいだけです。移動したくないまたは。言い換えれば、私の目標は、以下のような新しいリポジトリを形成することです。MyProject1MyProject1MyProject2MyProject3

/Repositories/NewRepo/trunk
/Repositories/NewRepo/branches
/Repositories/NewRepo/tags

これが私が仕事をするために作成したバッチファイルです:

:: Create a dump of the old repo
svnadmin dump %OldRepoPath% > %MyBigRepoDumpFile%

:: Remove the other projects
svndumpfilter include "MyProject1" < %MyBigRepoDumpFile% > %MyProject1DumpFile%

:: Create a new repo
svnadmin create %NewRepoPath%

:: Load the dump into the new repo
svnadmin load %NewRepoPath% < %MyProject1DumpFile%

%NewRepoPath%私の問題は、バッチが次のようにMyProject1ディレクトリを作成することです。

/Repositories/NewRepo/MyProject1/trunk
/Repositories/NewRepo/MyProject1/branches
/Repositories/NewRepo/MyProject1/tags

ダンプファイルから余分なレベル(MyProject1)を除外するか、履歴を保持したままレベルを上げる方法はありますか?

4

2 に答える 2

1

あなたの最善の策は、それを「現状のまま」(追加のレベルが存在する状態で)移動してからsvn copy、新しいリポジトリで構造をやり直すことだと思います。

ここで説明するように、dumpfileを微調整するオプションもあります。

于 2012-05-16T14:42:35.300 に答える
0

svndumpfilterは2回実行できます。

  1. 「/Repositories/ NewRepo / MyProject1 /」パスを(すでに行っているように)除外します。
  2. 「トランク」、「ブランチ」、「タグ」を除外します。
于 2012-05-16T15:03:11.307 に答える