Windows10 CMD中如何导出SVN版本区间内各版本对应的独立dump文件
核心思路
svnrdump的区间导出参数本身就是将多个版本合并输出到同一个dump文件中,要得到每个版本独立的dump文件,只需通过脚本循环遍历目标版本区间,逐个执行单版本导出命令即可。
不同环境的实现方案
Windows CMD环境
你提到使用CMD运行命令,可直接使用如下批处理脚本:
@echo off :: 按需修改下方三个参数 set "SVN_REPO_URL=https://somesite.com/svn/project" set "START_REVISION=1111" set "END_REVISION=1114" for /L %%r in (%START_REVISION%,1,%END_REVISION%) do ( svnrdump dump %SVN_REPO_URL% -r %%r --incremental > Project_rev%%r.dump )
将上述内容保存为后缀为.bat的文件,双击运行即可自动在当前目录生成每个版本对应的独立dump文件。
Windows PowerShell环境
如果使用PowerShell,可使用如下脚本:
# 按需修改下方三个参数 $svnRepoUrl = "https://somesite.com/svn/project" $startRev = 1111 $endRev = 1114 for ($rev = $startRev; $rev -le $endRev; $rev++) { svnrdump dump $svnRepoUrl -r $rev --incremental > "Project_rev$rev.dump" }
Linux/macOS Bash环境
如果使用类Unix系统,可使用如下Shell脚本:
# 按需修改下方三个参数 SVN_REPO_URL="https://somesite.com/svn/project" START_REV=1111 END_REV=1114 for (( rev=$START_REV; rev<=$END_REV; rev++ )) do svnrdump dump "$SVN_REPO_URL" -r $rev --incremental > "Project_rev${rev}.dump" done
保存为后缀为.sh的文件后,执行chmod +x 文件名.sh赋予执行权限后运行即可。
优化建议
如果需要导出的版本数量较多,可以在svnrdump命令后添加--quiet参数减少控制台输出,提升执行效率,示例:svnrdump dump https://somesite.com/svn/project -r 1111 --incremental --quiet > Project_rev1111.dump
内容的提问来源于stack exchange,提问作者Barry
相关产品推荐
相关产品推荐

