centOs6.5 SVN 服务器搭建并实现提交自动同步到web服务器

来源:互联网 发布:oracle数据库迁移步骤 编辑:程序博客网 时间:2024/06/05 09:35
第一步,安装SVN
yum install subversionyum remove subversion(卸载)

第二步,创建SVN版本库

mkdir -p /var/svn/svntest
第三步,创建版本库
svnadmin create /var/svn/svntest
执行完上面命令后会生成如下文件,说明版本库创建成功:


第四步,进入conf目录配置该版本库的文件:

authz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件

第五步,配置passwd,语法:用户名=密码,例:

[users]test1 = 123456 test2 = 123456
第六步,配置authz用户权限文件,rw是有读写权限:
[groups]# harry_and_sally = harry,sally# harry_sally_and_joe = harry,sally,&joeadmin_group = test2[/]test1 = rw[/adminfile]@admin_group = rw
第七步,配置svnserve.conf文件,打开下面几个注释即可:
anon-access = read #匿名用户可读auth-access = write #授权用户可写password-db = passwd #使用哪个文件作为账号文件authz-db = authz #使用哪个文件作为权限文件realm = /var/svn/svntest #认证空间名,版本库所在目录
第八步,启动SVN版本库,完成:

启动SVN:

svnserve -d -r /var/svn/svntest
关闭SVN(查看进程PID,然后kill掉):
ps aux | grep -i svnkill pid号

防火墙开启3690端口:

编辑防火墙配置文件:

vi  /etc/sysconfig/iptables
增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
重启防火墙
service iptables restart

第九步,实现自动同步:

首先在服务器上建一个文件夹:

mkdir /var/testcode
执行check:
svn --username test1 --password 123456 co svn://127.0.0.1 /var/testcode/
在/var/svn/svntest/hook下创建post-commit文件,文件设置可执行权限,加入以下内容:
#!/bin/shREPOS="$1"REV="$2"WEB_PATH=/var/testcodeSVN_USER=test1SVN_PASS=123456WEB_USER=wwwLOG_PATH=/tmp/svn.logecho `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATHecho `whoami`,$REPOS,$REV >> $LOG_PATHsvn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATHchown $WEB_USER.$WEB_USER -R $WEB_PATH
保存后实现自动同步功能

拓展,创建多项目:

(1): 创建svn仓库路径
mkdir  -p  /opt/svn/project1mkdir -p   /opt/svn/project2svnadmin  create  /opt/svn/project1svnadmin  create  /opt/svn/project2
注意:为了规范:一般在项目目录下再创建,项目代码导入到trunk目录:
mkdir  -p   /opt/svn/projec1/trunkmkdir  -p   /opt/svn/projec1/tagsmkdir  -p   /opt/svn/projec1/branches
项目2操作和一类似。

其他配置参考以上步骤

(2):启动svn服务

svnserve   -d   -r    /opt/svn/
注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径:比如
/opt/svn/project1    /opt/svn/project2   ------------------->   /opt/svn/ 

0 0