svn 用于管理代码版本控制,协同开发使用
第一步:安装svn
直接使用 yum install subversion ;
如果已经安装了,或者不确定是否安装了
检查已安装版本
rpm -qa subversion
卸载旧版本SVN
yum remove subversion
第二步:建立你的web程序目录和版本库目录
mkdir /svndata/pro1 这是创建svn目录,我喜欢在根目录
svnadmin create /svndata/pro1 生成svn版本库
第三步:配置账号,权限
cd /svndata/pro1/conf
这里有三个文件
authz : 这个是账户权限文件,配置每个用户或用户组的权限
vim authz
passwd:账号密码
vim passwd
svnserve.conf:svn的权限配置
vim svnserve.conf
anon-access=none #匿名访问的权限,可以是read,write,none,默认为read
auth-access=write #使授权用户有写权限
password-db=passwd #密码数据库的路径
authz-db=authz #访问控制文件
第四步:配置钩子
在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】
cd /svndata/pro1/hooks/
cp post-commit.tmpl ./post-commit #创建钩子文件,直接用模板的改
添加脚本内容如下:账号密码,自己写
#!/bin/sh
/usr/local/bin/svn up --username=name --password=pwd --no-auth-cache --non-interactive /www/project1 > /dev/null
其中“ /www/project1 ”是你项目的地址,需要同步的项目;
第五步:让post-commit有执行的权限
chmod 777 post-commit
第六步:将svn 设置到 systemctl 中
编辑 /etc/sysconfig/svnserve文件,将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录
#杀死所有svn服务进程
killall svnserv
#设置自启服务
systemctl enable svnserve.service
#启动svn服务
systemctl start svnserve.service
如果启动不行,可以尝试:svnserve -d -r /svndata
第七步:同步服务器项目文件
进入/www/project1目录。
cd /www/project1 #你的项目
svn co testsvn svn://192.168.1.110:8080/pro1/ ./project1 #前面是你的svn的地址,后面是你的项目目录
//检出一份版本库文件到当前目录 /www/project1
第八步:这里就已经完成了,本地安装小乌龟,就可以测试连接了。
注意事项:防火墙和安全规则;svn 默认端口是:3690
1.如果防火墙开启了,需要放开端口访问
centos 7
vim /etc/sysconfig/iptables
添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
service iptables restart
2.阿里的安全规则也要设置端口,进行放开,详细看阿里的介绍
3.svn端口修改
vim /etc/sysconfig/svnserve
OPTIONS="-dr /svn/ --listen-port 6666" #端口就改成了 6666
修改后,记得重启svn