如何将独立SVN仓库WBR3FFT迁移至Altera仓库作为子项目并保留tags文件夹结构?
我来帮你搞定这个SVN仓库迁移的问题!结合你提到的需求——要完整保留WBR3FFT的tags结构,历史日志不是核心,之前用dump/load没成功,我给你两种靠谱的解决方案,应该能解决你的问题:
你之前用dump/load失败,大概率是没正确处理路径重定向,或者dump时没导出完整仓库内容。按下面的步骤来:
第一步:导出WBR3FFT的完整dump文件
打开管理员权限的命令行,定位到VisualSVN Server的bin目录(默认路径是C:\Program Files\VisualSVN Server\bin),执行命令:svnadmin dump "C:\Repositories\WBR3FFT" > WBR3FFT_dump.svn这个命令会把WBR3FFT仓库的所有版本(包括tags分支)完整导出为dump文件。
第二步:修改dump文件的路径前缀(关键步骤!)
因为要把WBR3FFT放到Altera仓库的子目录下(比如Altera/WBR3FFT),需要批量修改dump文件里的路径。用文本编辑器(比如Notepad++)打开WBR3FFT_dump.svn,批量替换:- 把所有
Node-path:开头的行,从Node-path: tags/v1.0这类格式改成Node-path: WBR3FFT/tags/v1.0 - 同理,把所有
Node-copyfrom-path:开头的行也做同样的路径前缀替换
提示:用编辑器的“全部替换”功能,效率会很高,避免手动修改出错。
- 把所有
第三步:将修改后的dump导入Altera仓库
回到管理员命令行,继续在VisualSVN Server的bin目录下执行:svnadmin load "C:\Repositories\Altera" < WBR3FFT_dump.svn执行完成后,Altera仓库根目录就会出现
WBR3FFT文件夹,里面完整保留原来的tags结构。
既然你说历史日志不是核心需求,这个方法更简单快捷,几乎不会出错:
第一步:导出WBR3FFT的最新版本到本地
用TortoiseSVN右键点击本地一个空文件夹,选择「SVN Export」,在弹出的窗口里输入WBR3FFT仓库的URL(比如https://你的SVN服务器地址/svn/WBR3FFT),选择导出「最新版本」,点击确定。这样本地就会得到包含完整tags结构的文件目录。第二步:导入到Altera仓库的指定路径
打开TortoiseSVN的「Repo-browser」,连接到Altera仓库,在根目录右键选择「Create folder」,创建名为WBR3FFT的文件夹。然后右键点击这个新建的文件夹,选择「Import」,选中刚才导出的本地目录,填写导入日志(可选),点击确定即可完成迁移。提示:导入前要确保Altera仓库里没有同名的
WBR3FFT文件夹,避免冲突。
- 操作前一定要备份两个仓库:在VisualSVN Server管理器里右键点击仓库,选择「Backup Repository」,避免数据丢失。
- 如果用dump/load时遇到权限错误,务必确认命令行是管理员身份运行的。
- 迁移完成后,记得通知团队成员更新本地工作副本的URL,把原来的WBR3FFT地址改成
https://你的SVN服务器地址/svn/Altera/WBR3FFT。
内容的提问来源于stack exchange,提问作者Yakov

