> CentOS > CentOS教程 >

CentOS 6.5 x64安装svn

#svn安装

yum install -y subversion

卸载svn旧版本

yum remove -y subversion

wget http://pkgs.repoforge.org/subversion/subversion-1.7.4-0.1.el6.rfx.x86_64.rpm

安装新版本

rpm -ivh subversion-1.7.4-0.1.el6.rfx.x86_64.rpm

 

创建svn根目录

mkdir /svndata

创建svn公共配置目录

mkdir -p /usr/local/subversion/conf

cd /usr/local/subversion/conf

编辑用户文件authz

内容如下:

 

[groups]

backend=zty

[/]

whh=rw

@backend=rw

解释:

backend是代表一个用户组,@backend=rw表示用户组有读写权限。

whh是用来跑钩子脚本的用户,名字大家可以随便取,下面会说到钩子脚本。

如果需要添加用户zhang,修改backend=zty,在后面加上即可,多个用户用逗号隔开,效果如下:

backend=zty,zhang

 

编辑密码文件passwd

内容如下:

[users]

whh = whh

zty = zty123

解释:

等号左边是用户,等号右边是密码

 

创建bin目录

mkdir -p /usr/local/subversion/bin

链接文件 

ln -s /usr/bin/svn /usr/local/subversion/bin/svn

 

创建svn根目录

mkdir /svndata

创建svn日志目录

mkdir /var/log/svn

创建dts项目检出目录,此目录必须是空的。

一般svn服务器和网站服务器是在同一服务器上面的。

网站服务器的根目录为/www,所以dts项目从svn检出的路径也在/www目录下。

一旦客户端提交代码,访问网页,就可以看到效果。

mkdir /www/dts

 

创建项目

cd /svndata

svnadmin create dts

编辑配置文件

cd /svndata/www/dts/conf/

编辑配置文件svnserve.conf

清空所有内容

写入如下内容:

[general]

anon-access = none

auth-access = write

password-db = /usr/local/subversion/conf/passwd

authz-db = /usr/local/subversion/conf/authz

realm = web

 

[sasl]

# use-sasl = true

# min-encryption = 0

# max-encryption = 256

指定用户和密码配置文件为公共目录。如果新建项目的也指定为公共目录,只需要修改公共目录的文件,使用指定用户和密码,就可以访问其他相关项目。

在项目众多,人员权限统一的情况下,是很有必要的。

假如公司有60多个项目,新来一个员工,要添加一个账户,每个项目改配置很费劲。

如果都指定为公共目录,那就只需要更改authz和passwd这2个文件就可以了。

 

编辑钩子文件,默认post-commit文件不存在

vim /svndata/www/dts/hooks/post-commit

内容如下:

 

#!/bin/sh

 

/usr/local/subversion/bin/svn update --username whh --password whh /www/dts/ >> /var/log/svn/dts.log

 

设置权限

chmod 755 /svndata/www/dts/hooks/post-commit

这里解释下,钩子脚本的作用。

当客户端提交文件成功之后,会自动执行post-commit。将更新的代码检出到指定目录,保证提交的代码和服务器一致。

需要注意的是,不要直接在服务器的指定目录,这里是指/www/dts/ 编辑文件,否则客户端提交文件之后,提示文件冲突。

 

启动svn

svnserve -d -r /svndata

 

注意,必须要手动检出一份,否则post-commit不生效

svn co file:///svndata/www/dts/ /www/dts/

再次执行命令

/usr/local/subversion/bin/svn update --username whh --password whh /www/dts/

 

使用svn客户端上传代码测试

查看服务器/www/dts/目录是否有上传的文件

(责任编辑:IT)