因工作需要,将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开始计数。