* 阿里云ECS服务器需把端口 3690(svn默认端口加入安全组安全策略)
第一步,安装SVN
[plain]
yum install subversion
yum remove subversion(卸载)
查看版本信息 svnserve --version
第二步,创建SVN版本库
[plain]
mkdir -p /svndir/project
第三步,创建版本库
[plain]
svnadmin create /svndir/project
执行完上面命令后会生成如下文件,说明版本库创建成功:
第四步,进入conf目录配置该版本库的文件:
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
第五步,配置passwd,语法:用户名=密码,例:
[plain]
[users]
test1 = 123456
test2 = 123456
第六步,配置authz用户权限文件,rw是有读写权限:
[plain]
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = test2
[/]
test1 = rw
[/adminfile]
@admin = rw
第七步,配置svnserve.conf文件,打开下面几个注释即可:
[plain]
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = /svndir/project/conf/passwd #使用哪个文件作为账号文件
authz-db = /svndir/project/conf/authz #使用哪个文件作为权限文件
realm = /svndir/project #认证空间名,版本库所在目录
第八步,启动SVN版本库,完成:
启动SVN:
[plain]
svnserve -d -r /svndir/project/
关闭SVN(查看进程PID,然后kill掉):
[plain]
ps aux | grep -i svn
kill pid号
防火墙开启3690端口:
编辑防火墙配置文件:
[plain]
vi /etc/sysconfig/iptables
增加下面一行
[plain]
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
重启防火墙
[plain]
service iptables restart
第九步,实现自动同步:
首先在服务器上建一个文件夹:
[plain]
mkdir /home/wwwroot/test
执行check:
[plain]
svn --username test1 --password 123456 co svn://127.0.0.1 /home/wwwroot/test
在/var/svn/svntest/hook下创建post-commit文件(复制post-commit.tmpl文件修改文件名),文件设置可执行权限,加入以下内容:
[plain]
#!/bin/sh
REPOS="$1"
REV="$2"
WEB_PATH=/home/wwwroot/test
SVN_USER=test1
SVN_PASS=123456
WEB_USER=www
LOG_PATH=/tmp/svn.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
chown $WEB_USER.$WEB_USER -R $WEB_PATH
保存后实现自动同步功能
拓展,创建多项目:
(1): 创建svn仓库路径
[plain]
mkdir -p /opt/svn/project1
mkdir -p /opt/svn/project2
svnadmin create /opt/svn/project1
svnadmin create /opt/svn/project2
注意:为了规范:一般在项目目录下再创建,项目代码导入到trunk目录:
[plain]
mkdir -p /opt/svn/projec1/trunk
mkdir -p /opt/svn/projec1/tags
mkdir -p /opt/svn/projec1/branches
项目2操作和一类似。
其他配置参考以上步骤
(2):启动svn服务
[plain]
svnserve -d -r /opt/svn/
注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径:比如
/opt/svn/project1 /opt/svn/project2 -------------------> /opt/svn/
热门文章