一直以来都在用svn管理源代码,美中不足的是由于svn服务器端部署在本地,无法实现在异地迁入迁出程序,因此考虑将svn服务器部署在我的MyBook Live上。
一、部署svn
1.分别执行以下2条命令安装Optware
wget http://mybookworld.wikidot.com/local--files/optware/setup-mybooklive.sh
sh setup-mybooklive.sh
2.安装svn
/opt/bin/ipkg install svn
svn的相关程序都放在/opt/bin目录下
3.创建svn主目录,建议放在/DataVolume/shares下,以免更新固件的时候被删除
mkdir -m 777 /DataVolume/shares/svn
4.创建版本库
/opt/bin/svnadmin create /DataVolume/shares/svn/Library
5.加入权限控制,对用户名密码的保存主要有password-db和authz-db两种方式,password-db方式就是用户名和密码都是明文存放在同级目录下的passwd文件中,配置简单但安全性弱,authz-db方式中用户名密码使用了sasl加密,安全性较高但配置更复杂些。为方便起见我使用了password-db方式。
首先需要修改版本库目录中conf目录下的svnserve.conf文件,将下面几行的注释去掉,注意还要把最前面的空格也一起删掉,否则会报错
# anon-access = read
# auth-access = write
# password-db = passwd
同时还要把anon-access = read改为anon-access = none以取消匿名用户的读取权限。
接着修改passwd文件,在[users]段中增加user = password,注意等号两边要加空格,否则不起作用。
6.启动svn
/opt/bin/svnserve -d -r /DataVolume/shares/svn
7.实现svn开机自启动
执行以下命令在init.d下建立rc.local
cp /etc/rc.local /etc/init.d/rc.local
然后在在rc.local文件中exit 0一行前插入启动svn的命令
/opt/bin/svnserve -d -r /DataVolume/shares/svn
最后别忘了设置启动级别
update-rc.d rc.local start 99 2 3 4 5 . stop 01 0 1 6 .
8.在路由器上开通端口映射,使MyBook Live的3690端口能通过互联网访问。
二、迁移svn版本库
在MyBook live部署完svn后还要把原来的版本库迁移过去。
1.备份svn版本库
svnadmin dump E:TortoiseDataLibrary > E:svnbakLibrary.dump
2.将svn备份文件上传到MyBook live
3.导入备份文件
/opt/bin/svnadmin load /DataVolume/shares/svn/Library/ < Library.dump