我们在特定物理位置/mnt/data1/repos
澄清整合多个SVN回购
多个SVN存储库和回购在结构如下
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/trunk/App1
,/mnt/data2/repo/trunk/App2
& /mnt/data2/repo/trunk/App3
使用svn mkdir
。
然后我试图做APP1 /mnt/data1/repos/App1/
的svn dump
,使用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*
转储。
[将SVN存储库数据与历史记录作为子文件夹移动到另一个存储库]的可能重复(http://stackoverflow.com/questions/11563031/moving-svn-repositories-data-with-history-as-subfolders-into-另一个仓库) – bahrep
感谢您指出我的答案。但是,当我尝试导入过滤的转储失败。让我尝试'svnadmin import'带'--parent-dir'并更新 – pprakash
没有'svnadmin import'命令。导入过滤转储时会出现什么错误? – bahrep