centos搭建subversion服务器和利用SVN的钩子同步更新代码

发布时间:2017-04-13 编辑:小张个人博客 查看次数:5059

Subversion是一个自由开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。

安装Subversion

执行命令:yum install subversion   
执行命令:svn --version

现在开始搭建svn仓库:

mkdir  -p  /opt/svn/hello
svnadmin  create  /opt/svn/hello

进入conf文件夹下配置:

authz文件是对用户权限的控制,passwd是设置用户名和密码,svnserve.conf是针对svn的配置

先设置passwd,新建用户名和密码:

cd /pot/svn/hello/conf

vim passwd
user=password
user2=password2

再设置authz权限,给刚创建的user用户添加完全的读写权限

vim authz

[/]  #代表根目录下所有的资源
user=rw

最后设定svnserve.conf配置

anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = password
authz-db = authz   # 访问控制文件
realm = /opt/svn/hello # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。

启动svn服务器

svnserve -d -r /pot/svn/hello

查看服务是否运行:

netstat -tunlp | grep svn

远程链接

svn://服务器iP地址

部署项目到SVN上,实现本地更新同步到服务器项目:

配置项目仓库的钩子配置

cd /opt/svn/repos/hooks/   #进入SVN项目仓库钩子所在的目录

然后复制备份post-commit文件:

cp post-commit.tmpl post-commit

实现SVN与WEB同步更新

# 设置WEB服务器根目录为/www/default

# checkout一份SVN
svn co svn://localhost/oplinux /www/default

修改权限为WEB用户

chown -R www:www/www/svndata/oplinux

建立同步脚本

cd /www/svndata/oplinux/hooks/

方案一:

vi post-commit # 输入以下内容:
#!/bin/sh
REPOS="$1"
REV="$2"
export.UTF-8
svn update /www/web/default --username test--password test

方案二:

cp post-commit.tmpl post-commit

# 编辑post-commit,在文件最后添加以下内容
export.UTF-8
SVN=/usr/bin/svn
WEB=/www/web/
$SVN update $WEB –username test–password test
chown -R www:www $WEB

增加脚本执行权限

chmod +x post-commit

如果不成功 尝试一下方法,在命令后面加上  --no-auth-cache

$SVN update $WEB –username test–password test  --no-auth-cache

对文件执行chmod +x post-commit操作

最后操作是关闭服务然再打开服务:

svn服务的关闭:killall svnserve
svn开启: svnserve -d -r /opt/svndata/oplinux/


出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号