我们在特定物理位置有多个 SVN 存储库/mnt/data1/repos
并且回购的结构如下
repos
|
App1
|
trunk
|
module1
|
module2
|
branches
|
App2
|
trunk
|
module1
|
module2
|
branches
|
App3
|
trunk
|
module1
|
module2
|
branches
我们正在尝试将多个存储库合并到单个存储库,如下所示在不同的路径/mnt/data2/repo
repo
|
trunk
|
App1
|
module1
|
module2
|
App2
|
module1
|
module2
|
App3
|
module1
|
module2
我使用 svnadmin 创建了一个仓库/mnt/data2/repo
创建目录/mnt/data2/repo/trunk/App1
,/mnt/data2/repo/trunk/App2
并/mnt/data2/repo/trunk/App3
使用svn mkdir
.
然后我尝试做svn dump
app1 ,使用with和 did to/mnt/data1/repos/App1/
过滤它。它失败了,因为它不是回购的根。svndumpfilter
include trunk
svn import
/mnt/data2/repo/trunk/App1
/mnt/data2/repo/trunk/App1
请让我知道执行此合并的最佳方式。重要的一点是我们应该保留所有回购的修订历史。
编辑:
我执行了以下步骤。
svnadmin dump --quiet /mnt/data1/repos/App1 > App1.dmp
svndumpfilter include --targets /tmp/list.txt < App1.dmp > App1Trunk.dmp
svnadmin create /mnt/data2/repo/
svn mkdir --parents svn://<IP>:<PORT>/trunk/App1 -m "Creating MC directory"
svnadmin load --quiet --parent-dir trunk/App1 /mnt/data2/repo < App1Trunk.dmp
当我尝试加载转储时,我发现它仍在创建trunk/App1/trunk/module1
,trunk/App1/trunk/module2
等。帮助我将数据加载到trunk/App1/moudle*
.