本文最后更新于 2024-07-07,文章内容可能已经过时。

需求

需要把 服务器A 上的SVN 迁移到 服务器B 上,且配置都需要保持一致,数据一样。

环境信息

服务器信息 SVN版本
服务器A: 192.168.1.100 1.7.14
服务器B: 192.168.1.200 1.7.14

SVN 服务端部署

yum -y install subversion

查看svn的版本

svnversion --version

创建svn目录

mkdir -pv   /svn/data/project
svnadmin create   /svn/data/project

配置svn密码

vim /svn/data/project/conf/passwd

srebro.cn = hellosrebro

设置权限,设置srebro.cn具有读写权限

vim  /svn/data/project/conf/authz

[/]
srebro.cn=rw

设置svn服务器匿名用户无法登录

vim  /svn/data/project/conf/svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

启动svnserver

svnserve -d -r  /svn/data/project

在windows上使用tortoisesvn提交测试

tortoisesvn小乌龟下载地址

https://osdn.net/projects/tortoisesvn/storage/1.14.1/Application/TortoiseSVN-1.14.1.29085-x64-svn-1.14.1.msi/

svn://ip地址

image-20231025143531802

SVN 服务端迁移

当因为内存限制或者其他某些原因,我们需要将svn版本从一个服务器A迁移到另外一个服务器B时,如果我们单纯的只是将svn版本从服务器A check out后将文件重新放到服务器B,将会缺失SVN原有的日志信息等内容。

当我们需要保留原服务器上所有的SVN日志信息等时,采用如下步骤来实现:

1、在服务器A下,存储版本

 svnadmin dump  /svn/data/project > /root/svn_dump

其中 /svn/data/project 为原SVN仓库(svn标识仓库名), svn_dump 为我们所备份出来的整个仓库信息

2、将服务器A中备份出来的 svn_dump文件拷贝至服务器B

3、在服务器B中,从仓库备份中还原仓库内容

svnadmin load /svn/data/project_new  < /root/svn_dump

其中 /svn/data/project_new 为新的SVN仓库(project_new标识仓库名),svn_dump为服务器A拷贝而来的仓库备份

至此我们就实现了SVN版本的迁移,保留了原服务器下的svn仓库的所有信息。

image-20231025144000329

image-20231025144113696