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控制