SVN安装与搭建

1、仓库放在 /var/svn/ 目录下,并且仓库名为 project

2、创建用户组user,该组下添加两个成员user1、user2,密码直接用用户名,两用户可以checkout代码和提交代码

3、利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web目录,在这里,我的web目录在 /var/www/html 下

一、搭建svn环境并创建仓库:

1、安装Subversion:

 yum install -y subversion

2、检测是否安装成功(查看svn版本号)

 svnserve --version

3、创建版本库

先建目录 mkdir /var/svn

CD到这个目录 cd /var/svn

创建版本库 svnadmin create /var/svn/project
  cd project (会看到自动生成的版本库文件 conf db format hooks locks README.txt)
  
二、创建用户组及用户:

1、 进入版本库中的配置目录conf(三个文件): svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。

2、修改权限配置文件:vim authz
在这里插入图片描述
3、配置用户名命令文件:vim passwd
在这里插入图片描述
4、配置SVN服务综合配置文件svnserve.conf

找到以下配置项,将前面的#号去掉,然后做相应的配置

anon-access = none 匿名用户访问权限:无

auth-access = write 普通用户访问权限:读、写

password-db = passwd 密码文件

authz-db = authz 权限配置文件

realm = /var/svn/project 版本库所在

注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错
  
5、启动svn服务:

svnserve -d -r /var/svn

如果提示:svnserve: E000098: Can’t bind server socket: Address already in use

证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务

停止svn服务 killall svnserve

再运行 svnserve -d -r /var/svn,进行启动服务  
 
6、测试服务器:

我们在web目录测试(/www/html)

cd //www/html

svn co svn://localhost/project (如果提示:Checked out revision 1. 表示checkout成功)

我们添加新文件来测试是否提交成功

cd //www/html

touch index.php

svn add index.php 成功的话会显示 (A index.php)

svn commit index.php -m “测试提交文件” (如果成功会显示:Adding index.php Transmitting file data . Committed revision 2. 则表示我们svn服务器搭建成功!文件已经能够推送了。)
  
7、本地拉取、推送
在这里插入图片描述
在这里插入图片描述
输入用户名称和密码(如果失败去看看 端口3690是否被禁用 )

三、实现svn更新自动同步到web目录:

1、在web目录中checkout版本库

这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:

svn co svn://localhost/project /www/html --username user1(SVN账号) --user1(SVN密码)

进入/var/svn/project/hooks下,建立post-commit文件:

cd /var/svn/project/hooks

vim post-commit

//在该文件里添加如下代码,保存

#!/bin/sh

#设定环境变量,如果没有设定可能会出现update报错

#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK

export LANG=en_US.utf8

SVN_PATH=/usr/bin/svn //这里不用改

WEB_PATH=/www/html //web目录,如果你的不同,可以改

//这里的用户随便一个就好

$SVN_PATH update $WEB_PATH --username ‘user1’ --password ‘user1’ --no-auth-cache

保存退出。

修改post-commit用户为www目录用户

chown apache:apache post-commit //我的 /home/www 的用户组和所有者都是apache

给post-commit 执行权限:

chmod 755 post-commit

如有问题请给我留言!

REPOS="$1"
REV="$2"
export_LANG=en_US.UTF-8
SVN_PATH=/usr/bin/svn
WEB_PATH=/www/admin/localhost_80/wwwroot
SVN_USER=gesuo
SVN_PASS=gs123456789
SVN_PATH update WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值