CentOS 7 环境下部署 SVN 并实现自动更新(版本库放在Tomcat下)
Posted lt-xili
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 环境下部署 SVN 并实现自动更新(版本库放在Tomcat下)相关的知识,希望对你有一定的参考价值。
1、安装 SVN
1.1先检查是否有安装 svn
rpm -qa subversion #没有什么显示就说明没有安装过
yum remove subversion #如果有安装就运行删除老版本
yum install subversion #运行安装SVN
1.2创建SVN版本库(这里我们直接部署到Tomcat/webapps下,如果没有可以自行部署一个Tomcat)
mkdir -p /usr/local/tomcat/webapps/svn
1.3创建版本库
svnadmin create /usr/local/tomcat/webapps/svn/svnTest
完成此处之后会在该目录下生成以下目录文件
1.4在版本库的 conf目录下配置文件
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
1.5设置配置passwd 如:用户名=密码
[users]
test = test123
1.6配置authz文件,设置用户权限 rw是拥有读写权限(注:一定要顶格写):
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe test = test
[/]
test = rw
[/adminfile]
@test= rw
1.7配置svnserve.conf ,打开以下注释就好了
anon-access = read #匿名用户可读 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm =/usr/local/tomcat/webapps/svn/svntest #认证空间名,版本库所在目录
1.8启动SVN
svnserve -d -r /usr/local/tomcat/webapps/svn/
检查svn是否启动成功,查看进程
ps -ef |grep svnserve
检查防火墙
#添加(--permanent永久生效,没有此参数重启后失效) firewall-cmd --zone=public --add-port=3690/tcp --permanent #重新载入(svn默认3690端口) firewall-cmd --reload #查看 firewall-cmd --zone= public --query-port=3690/tcp
#或者之间关闭防火墙
systemctl stop firewalld.service
最好在检出
svn co svn://ip/svnTest
回车之后会出现:
“root”密码:这里没有设置直接回车继续到 用户名:test “test”的密码:test123 保存未加密的密码(yes/no):yes 最后提示: 取出版本:0
用户端链接:
svn://ip/svnTest
二、实现用户上传SVN服务自动更新(Web项目直接刷新页面更新)
在版本库中找到hooks文件,复制文件 post-commit.tmpl 并改名位 post-commit
cd /usr/local/toncat/webapps/svn/svnTset/hooks
cp post-commit.tmpl post-commit
将以下内容写进 post-commit 文件中
#!/bin/sh export LANG="zh_CN.UTF-8" REPOS="$1" REV="$2" SVN_PATH=/usr/bin/svn WEB_PATH=/usr/local/tomcat/webapps/svnTest/ $SVN_PATH update $WEB_PATH --username test--password test123--no-auth-cache
保存之后给 post-commit 执行权限
chmod -x post-commit
到这来就已经实现了自动更新,就到网页通过tomcat访问到版本库中最新的项目了
以上是关于CentOS 7 环境下部署 SVN 并实现自动更新(版本库放在Tomcat下)的主要内容,如果未能解决你的问题,请参考以下文章