场景

SVN仓库需要从Windows 10操作系统整体迁移至Linux CentOS 7 操作系统

迁移准备

  • 需要先在Linux那台操作系统的服务器上安装SVN,具体安装教程看这篇文章:Linux(CentOS 7)安装SVN详解
  • 安装完成以后新建一个新的仓库,仓库名最好和需要迁移的仓库名字对应

操作过程

Windows平台SVN管理使用的是VisualSVN,比如你的仓库路径位置:D:\svn\AProject,(AProject是项目仓库名称),利用svnadmin,Linux操作系统需要的是.dump结尾的文件不是用VisualSVN备份出来的.vsvn.bak结尾文件,下面开始操作命令

导出

svnadmin dump AProject > D:\AProject.dump

D:\AProject.dump 的意思是新的文件导出到D盘下,文件名为AProject.dump 导出是时间和仓库大小有关,这样是所有Version版本号都会导出来,如果只需要导出指定版本

导出指定版本号

导出Version版本号为20的所有AProject仓库下的文件,导出到D盘,命名为AProject.dump

svnadmin dump AProject -r 20 > D:\AProject.dump

导出Version版本号100-200之间的

svnadmin dump AProject -r 100:200 > D:\AProject.dump

导出完成之后把导出的AProject.dump上传到服务器

导入

最好提前创建好一个和需要迁移的SVN库名字一样的仓库/svn/AProject ,AProject为Linux新建的仓库,这里模拟把之前导出的AProject.dump文件上传到了服务器/svn下

svnadmin load /svn/AProject < /svn/AProject.dump

到此位置算是SVN库迁移完毕,接下来就是配置账户和权限

账户和权限

由于Windows操作系统上SVN使用VisualSVN本地密码存储为加密的密文,而Linux操作系统上SVN账户存储为明文,这里唯一麻烦的一点是需要将密文替换成明文

Windows操作系统VisualSVN管理的账户存储位置

  • 账户和密码在和项目仓库同级路径下文件名为:htpasswd,右键-打开方式可以用记事本,可以使用NotePad++
  • 组管理信息在同级路径下文件名为:groups.conf,打开方式同上
  • 权限分配文件位置,SVN仓库目录的下一级里面,如在:D:\AProject里面找到conf文件双击进入找到文件名为:VisualSVN-SvnAuthz.ini这个就是,如图修改

配置新SVN仓库账户和权限

把上面找到的账户和密码,还有权限文件,按照这篇文章里面的设置去修改成一样的即可Linux(CentOS 7)安装SVN详解 最后配置完毕不要忘了重启SVN服务!