相信很多同学都是用过cvs、svn等版本控制工具,现在cvs已经逐渐的被svn替代,今天我们就简单的说一下centos下面subversion的搭建。
首先,centos下默认会安装subversion,你可以通过这条命令来查看subversion是否安装
[shell]rpm -qa | grep subversion[/shell]
如果安装了,则会列出已经安装的subversion的版本信息。
如果没有安装则可以yum安装
[shell]yum -y install subversion[/shell]
安装之后,我们则需要开始搭建你的repository,也就是你的版本仓库。
[shell]mkdir /data/svn/repos1
svnadmin create /data/svn/repos1[/shell]
建立完仓库之后,我们进入配置文件文件夹
[shell]cd /data/svn/repos1/conf/[/shell]
编辑配置文件
[shell]vim svnserve.conf[/shell]
[shell][general]
anon-access = none
auth-access = write
password-db = passwd
#如果出现错误将下一行屏蔽
#authz-db = authz
realm = repos1[/shell]
再编辑用户文件
[shell]vim passwd[/shell]
在下面加入
[shell]username = password[/shell]
继续编辑权限文件
[shell]vim authz[/shell]
//创建一个名为svn的组,加入用户username
[shell]svn = username1,username2
//制定根目录下的权限
[/]
//svn用户组为读写
@svn = rw
* = r[/shell]
启动我们的版本服务
[shell]svnserve -d -r /data/svn[/shell]
也可以自己定义端口
[shell]svnserve -d -r /data/svn --listen-port 3690[/shell]
如果要定义多个版本库,需要修改端口。
可以自行查看svn的运行状况
[shell]ps aux | grep svnserve[/shell]
然后,就可以本地checkout版本了,地址为svn://ip/repos1
关掉svn服务[shell]
killall svnserve[/shell]
如果你要建立多个仓库这样做即可[shell]
mkdir -p /data/svn/repos1
mkdir -p /data/svn/repos2
svnadmin create /data/svn/repos1
svnadmin create /data/svn/repos2[/shell]
然后分别去各个仓库的conf文件夹下面编辑相关文件即可,然后再启动svn服务:[shell]
svnserve -d -r /data/svn/[/shell]
那么checkout的地址为:[shell]
svn://ip/repos1
svn://ip/repos2[/shell]
在这里还有个问题就是svn提交的时候将代码自动同步到网站目录下,例如你的其中一个仓库的地址为/data/svn/repos1,你希望你在svn提交到这个仓库的时候将代码自动同步到/data/apps/web/tencent/,这个时候我们需要用到钩子脚本,进入到这个目录[shell]
cd /data/svn/repos1/hooks
cp post-commit.tmpl post-commit[/shell]
然后[shell]
chmod u+x post-commit[/shell]
然后在post-commit脚本中加入[shell]
export LC_CTYPE=en_US.UTF-8
svn update /data/apps/web/tencent --username gaoxueping --password 123456[/shell]
在使用这个脚本之前,你首先要在你的网站目录下checkout一下,[shell]
cd data/apps/web/
svn checkout svn://ip/tencent[/shell]
这样你每次提交的时候都会自动同步到你的目标文件件。