windows:

如何从windows服务器迁移svn,首先要做的就是编辑一个bat文件。(适用于多个库环境)

export.bat

svnadmin dump D:\Repositories\cms_ios  > D:\svnbak\cms_ios.dump

全部dump之后,压缩成zip的包,用WinSCP上传至服务器。


linux:

创建库目录,编辑权限文件及密码文件。

mkdir -p /data/svndata/   

svndata 为svn服务器根目录(所建库都在这个目录下)

解压:unzip  svnmove.zip

场景:如果你迁移的库太多的话建议使用脚本去处理

eg:

#创建目录及导入
#!/bin/sh
cd /data/tmp/
for name in `ls`
do
str=${name%.dump*}
mkdir -p /data/svndata/$str
svnadmin create /data/svndata/$str
svnadmin load /data/svndata/$str < /data/tmp/$name
done


ps:(此脚本作用,查找/data/tmp 目录下的所有dump文件,并在/data/svndata/目录创建项目名并导入dump文件。)   


以cms_ios.dump为例

cd /data/tmp

cms_ios.dump    

mkdir -p /data/svndata/cms_ios
svnadmin create /data/svndata/cms_ios
svnadmin load /data/svndata/cms_ios < /data/tmp/cms_ios.dump


迁移完成

然后配置权限文件及密码文件,svn用户密码可以用随机产生5个字符来制作。

执行:date +%s | sha256sum | base64 | head -c 5



权限配置文件

mkdir /data/svndata/conf

authz 权限文件

security_passwd  密文文件

passwd  明文文件

svnserve.conf 配置文件



启动svn服务器

svnserve -d -r /data/svndata --config-file /data/svndata/conf/svnserve.conf

note:这样做的作用使在/data/svndata/ 目录下的所有库都受svnserve.conf指定的authz和passwd控制