SVN搭建与自动部署
https://blog.csdn.net/weixin_38676160/article/details/127826487
一.安装与基本命令
1.yum安装svn (注意防火墙开发端口号,如果是 云服务器,需要添加安全组开发端口号)
svnserve --version (检测是否安装)
yum install -y subversion 直接安装
yum remove subversion 卸载
2.创建svn资源仓库
svnadmin create svn(仓库名称) 创建svn仓库
3.有以下几个配置文件 conf db format hooks locks README.txt
在conf中 authz #权限配置文件 在[groups]下面加入: [/]
= rw #所有用户有读写权限 dangerman = ##危险分子?什么是危险分子?没有任何权限 [svndir:/] ###定义目录,项目的根目录
passwd #用户名密码文件
在[users]中加上 yunwei(名称) = 123456(密码)
svnserve.conf #资源库配置文件
这个配置文件打开下面几行前面的注释,删除最前面的空格:
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository
4.启动 查看状态 停止
svnserve -d -r /opt/svn (安装位置) 启动 ps -aux|grep svnserve (查看状态) 关闭 killall svnserve
5.克隆 更新 查看 等
svn co(checkout) $url(svn://xx.xxx.xxx.xxx/test) 文件夹名 #拉取项目 svn log -l 5 查看 svn 文件的最近5条记录
6.SVN中 trunk(主分支) branchs(分支) tags(标记) 的区别
branch 和tag,对于svn都是使用 copy 实现的,所以他们在默认的权限上和一般的目录没有区别
truck(主分支):是用来做主方向开发的,新功能的开发应放在主线中,当模块开发完成后,需要修改,就用branch。
branch(分支):分支开发和主线开发是可以同时进行的,也就是并行开发,分支通常用于修复bug时使用
tag(标记):用于标记某个可用的版本,可以标记已经上线发布的版本,也可以标记正在测试的版本,通常是只读的
7.友情链接
菜鸟教程
二.自动部署项目
1.第一种情况:部署的项目和svn在同一服务器时
在 svn 目录的 /hooks 里面有一堆tmpl,这些tmpl可以做很多事情 自动部署post-commit.tmpl tmpl文件是模版文件
①. 要用post-commit需要手动复制一份
cp post-commit.tmpl post-commit
②.post-commit文件内容如下
!/bin/sh #其中第一行意思是:用sh来解析这个脚本,因为各种shell的语法有细微的差别
export LANG=zh_CN.UTF-8 #第二行是编码格式:这里我使用的是UTF-8
/usr/bin/svn update --username **** --password **** /opt/www/test #最后一行/usr/bin/svn 是svn的路径 后面是用户名、密码、和项目路径
③.修改post-commit的可执行权限
chmod 755 post-commit
④.拉取项目
在服务器进入项目目录/opt/www/test checkout 整个项目;
svn checkout svn://{您的服务器地址}:{端口号}/test . 注意目录后面还有一个点