因工作需要,将windows server 2012上的svn库迁移到redhat 6.8服务器上,整理了大体操作步骤,便于后续参考。

大体步骤

一、导出要迁移的svn库

先将需要迁移的库导出,执行下面的命令(参数需要根据实际情况进行调整):

svnadmin dump E:\Repositories\fpp > e:\svnbak\fpp.dump

将svn项目导出到e:\svnbak目录下。

二、建立项目库

执行下面命令建立项目库:

svnadmin create /data/svndata/fpp

三、导入前面导出的文件

导入前面导出的文件,执行下面命令:

svnadmin load /data/svndata/fpp < /root/fpp.dump

四、用户权限配置

如果配置有调整,发现没生效,可以采用先杀掉进程再启动的方式尝试一下。

1. 配置用户信息及权限路径

/data/svndata/example/conf/svnserve.conf            # example是具体的仓库名称,需要根据实际情况进行替换

上面文件中,可自定义用户和权限的配置文件路径:

password-db = /data/svndata/conf/passwd
authz-db = /data/svndata/conf/authz

建议所有svn仓库共用统一的passwd和authz文件,否则可能会遇到问题。(我实操了各库分别设置自己的用户和权限,发现配置没生效,就没继续尝试深究了)

2. 用户信息配置
在默认或指定的passwd中配置用户信息,样例如下:

[users]
zhangs = 123pwd
lis = 123456
wangw = abc456

3. 用户权限配置
在默认或指定的authz中配置用户信息,样例如下:

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = zhangs
groupa = lis,wangw

[/]
* = r
@admin = rw

[example:/]
* = r
@admin = rw

[example:/a]
@groupa = rw

其他说明

svn服务器实际运行中,可能用到的命令:
1. 检查是否启动成功:(查看是否存在svnserve 进程)

ps -ef|grep svnserve

2. 启动svn版本库

svnserve -d -r /data/svndata
svnserve --listen-port 3691 -d -r /data/svndata     # 增加设置端口参数
netstat -ntlp                    # 查看端口是否开启

3. 关掉svn服务
先使用1里面的命令获取到进程号,再调用下面的命令执行关闭操作。

kill -9 4967    # 这里的4967只是例子,实际执行时需要用真实的进行替换

截取svn部分版本导入新系统

如果想只截取原svn中间某段连续版本,导入新的系统,可以使用dump命令的-r参数,例子如下:

svnadmin dump -r 7:8 /data/svndata/test > /root/Documents/test_7-8.dump

导入新系统的操作步骤类似,操作样例如下:

svnadmin create /data/svndata/test 
svnadmin load /data/svndata/test < /root/Documents/test_7-8.dump

这样操作完毕之后,则新的svn版本只包含截取的连续版本,且版本号是从1开始计数。