CentOS 5.9下安装配置svn

相比现在流行的git来说,svn是不是已经老去了。因为公司的开发在用着svn,因此就有了这篇博客。

一:安装svn

1 下载svn

wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz

2 安装svn

#下面二个压缩文件解压后会放到同一个文件下,不要另建文件夹
tar zxvf subversion-1.6.1.tar.gz
tar zxvf subversion-deps-1.6.1.tar.gz
cd subversion-1.6.1
./configure --prefix=/usr/local/svn

3 将svn的bin加入到环境变量中去

vim /etc/profile
PATH=$PATH:/usr/local/svn/bin

二:配置svn

1 配置svn

(1) 建个svn的根目录,因为项目不只一个
mkdir -p /data/svndata
(2) 建个仓库
/usr/local/svn/bin/svnadmin create /data/svndata/yourprojcect
(3) 修改svnserve.conf
cd /data/svndata/yourprojcect/conf/

a 修改svnserve.conf如下:
[general]
anon-access = none
auth-access = write
password-db = passwd
realm = yourprojcect
[sasl]

b 修改authz如下:
[aliases]
[groups]
yourprojcect = budong
[/]
@yourprojcect = rw
* = r

c 修改passwd如下:
[users]
budong = budongpassword

2 客户端的访问,测试svn

svn checkout svn://192.168.1.49/yourprojcect
cd yourprojcect
touch a.php
svn add a.php
svn commit -m "ok"

提示输入密码就输入密码,看代码能不能正常提交。

3 svn钩子(仓库的代码直接同步到网站根目录)

效果:每次提交代码时,文件自动同步到/data/html
(1)建立web程序目录  
mkdir /data/html
a 进入/data/html/目录
cd  /data/html/
b 检出一份版本库文件到当前目录
svn checkout svn://192.168.1.49/yourprojcect ./
(2)在项目库的 hooks/ 目录下新建 post-commit 文件,添加脚本内容如下:
#!/bin/sh
SVN=/usr/bin/svn
WEB=/data/html
export LANG=en_US.UTF-8
$SVN update $WEB --username budong --password budongpassword

4 设置开机启动svn

vim /etc/rc.local
/usr/local/svn/bin/svnserve -d -r /data/svndata

三:小技巧

1 windows平台数据迁移到linux

a 先导出svn库导出到d:\svnbak\svnbak.dump
在cmd命令行里输入
svnadmin dump d:/svndata > d:\svnbak\svnbak.dump
此时你会看到窗口里显示从第一个版本开始备份,一直到最后一个版本
b 把svnbak.dump想办法传到linux服务器,这是采用svn的方式
c 我在linux的svn代码库为:/data/svndata/yourprojcect
svnadmin load /data/svndata/yourprojcect < /root/svnbak.dump

四:是时候结束了

自言自语:

感冒了是不是要博得点同情,做IT的身体真是个硬伤,今天来回爬了几层楼,感觉身体都虚了,以后要加强锻炼了。各种不想动,先挖个坑,明天继续填。

参考资料:

svn 官网: http://subversion.apache.org/

svn iusesvn:http://www.iusesvn.com/

svn 中文社区:http://www.subversion.org.cn/

svn 中文文档:http://www.subversion.org.cn/svnbook/1.4/svnbook.html