搭建svn服务器并自动更新到web服务器

搭建svn服务器并自动更新到web服务器

安装搭建svn和版本库

  1. 使用yum安装svn
yum install -y subversion

-y的作用就是默认在后续弹出的提示中选择yes 可使用yum -h查看具体参数的作用
 -y, --assumeyes answer yes for all questions
2. 查看版本信息

svnserve --version

如果没有显示正确的版本信息 可以根据错误提示搜一下解决办法

svn: error while loading shared libraries: libaprutil-1.so.0: cannot
open shared object file: No such file or directory

这个是我出现的错误信息
可参考[https://blog.csdn.net/hipihi_0/article/details/8108132]
因为的我/usr/local目录下并没有apr-util这个目录所以只加入apr这个目录
这里写图片描述
然后使用 ldconfig -v后在输入svnserve --version就能正确显示版本号也能正常使用了
这里写图片描述
3. 创建版本仓

mkdir /home/svn
cd /home/svn

.
4. 创建项目目录并进入

svnadmin create project 
cd project

在svn目录中创建项目目录并进入 可以看到里面自动生成很多目录和文件
5. 设置用户组 账号密码 权限
修改权限配置文件 conf/authz

 vim conf/authz

这里写图片描述
添加一个用户组 user1 里面有两个账号 admin1 admin2
这个用户组的权限为 rw (可读可写)

设置登录的账号密码 conf/passwd

vim conf/passwd

这里写图片描述
注意:这里的账号前面不能有空格 不然会导致登录失败

配置svn配置文件 conf/svnserve.conf

vim conf/svnserve.conf

这里写图片描述
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
将上面这几个前面的#号去掉即可

realm = /home/svn/project 版本仓所在位置
这个可改可不改 我没改也是可以成功checkout的
6. 启动svn服务器

svnserve -d -r /home/svn

如果提示svn服务已在运行中 先退出进程在启动

killall svnserve
svnserve -d -r /home/svn

然后我们在web目录 检出

svn checkout svn://localhost/project --username admin1

svnserve各参数详解

这里写图片描述

成功导出后 我们可以添加一个文件

cd project
vim index.php

保存退出

提交文件并更新到svn

svn add index.php 
svn commit index.php -m 'update '

显示提交成功后 我们可以在本地检出 就可以看到index.php这个文件


导入原项目到版本库中

svn import /www/project/ file:///home/svn/projectName/ -m "initial improt"

这个指令是可将原项目(/www/project/)导入到版本库中
这样在检出(chekcout)时 便包含了原项目
在这里插入图片描述


使用钩子对本地提交的文件自动更新到web服务器

vim /home/svn/project/hooks/post-commit

添加下面的内容

 #!/bin/sh 
SVN_PATH=/usr/bin/svn 
WEB_PATH=/yjdata/www/www/project LOG_PATH=/home/svn/log/project_log
echo `date "+%Y-%m-%d %H:%M:%S"`  >>$LOG_PATH 
$SVN_PATH update $WEB_PATH --username admin1 --password admin1 >> $LOG_PATH

WEB_PATH 自己实际的项目路径
LOG_PATH SVN更新日志路径

添加完给这个文件一个权限 不然会导致更新失败

chmod 775 /home/svn/project/hooks/post-commit

同时需要在home目录创建一个目录log

mkdir /home/log

然后将本地的index.php修改或者新建文件 就能看到web目录跟着更新了.


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值