1 . 安装svn
$ yum install subversion
2 . 使用svn
创建仓库目录,
这个可以根据自己的需求创建,最好 创建在 linux挂载的数据盘
$ cd /data
$ mkdir svndata # 创建总目录,我准备将服务器所有的项目仓库都建在该目录下
$ cd svndata
$ svnadmin create dev.crm.com # 执行创建svn仓库的命令
svnadmin 如果执行成功会生成 对应的目录为 dev.crm.com的目录名称也就是仓库
如下图所示
f970308b25e6856285af77ee3b5b7ee.png
可以根据自己的需要执行svnadmin 在svndata下创建多个仓库
- 配置svn:
$ cd dev.crm.com
$ cd conf # 进入配置目录
1.配置服务文件svnserve.conf,主要开启以下4项
vi svnserve.conf
[general]
anon-access = none
auth-access = write # 允许认证者写的权限
password-db = passwd # 指定客户端用户密码文件
authz-db = authz # 指定客户端使用者文件
2.配置用户文件 authz
$ vi authz 示例如下
[aliases]
[groups]
group_1 = xiaoming,xiaohua # 配置用户 xiaoming 和 xiaohua
[dev.crm.com:/]
@group_1 = rw # 配置group_1 下的用户有 读写权限
3.配置密码文件 passwd
$ vi passwd
[users]
# 分别配置 xiaoming , xiaohua 两个用户的密码为 123456
xiaoming = 123456
xiaohua = 123456
4 . 配置Hooks, 让客户端提交的代码直接同步到 项目运行目录
#进入钩子目录
$ cd dev.crm.com/hooks
$ cp post-commit.tmpl post-commit # 重新复制一个钩子文件并重命名
$ vi post-commit # 配置钩子
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8 # 指定编码。
SVN_PATH=/usr/bin # 指定svn可执行命令 的安装目录,由于我使用yum安装故就在该目录
WEB_PATH=/data/wwwroot/dev.crm.com # 项目运行目录
LOG_PATH=/data/svndata/dev.crm.com.log # 该项目的svn运行日志文件,下面两项为日志的格式
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
# 以下两项表示 用户 xiaoming , xiaohua 两人提交代码直接同步至项目目录
$SVN_PATH/svn update $WEB_PATH --username xiaoming --password 123456 --no-auth-cache >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username xiaohua --password 123456 --no-auth-cache >> $LOG_PATH
配置文件后,必须给钩子文件可执行权限
chmod +x post-commit
5 . 启动服务器的svn
$ cd /data
$ svnserve -dr svndata # 该命令会启动 svndata目录下的所有svn项目仓库
$ ps -ef | grep svn # 查看svn 是否正常启动
$ netstat -tunlp | grep 3690 # 检查svn监听的端口是否启用
备注 :
svn 默认监听的是 3690 端口
如要 开启服务器客户端远程提交代码,故需要配置iptables 允许远程访问 3690端口
网友评论