环境搭建:
yum install subversion yum安装svn服务
svn --version 检查是否安装
cd /usr/local/svn/conf 找到conf 文件
mkdir -p /var/svn/svnrepos svn版本创建目录
svnadmin create /var/svn/svnrepos/test 首先创建一个测试版本库test
cd /var/svn/repos/test/conf
vi authz 打开文件在最下面加入配置,authz文件负责账号权限的管理,控制账号是否读写权限
dev=rainbol1 //表示设置组
test=rainbol2
ops=rainbol3
[/] //指定根目录先的权限 @test = rw //设置test组的权限为可读可写
@dev = rw
@ops = r
vi passwd 接着打开第二个文件在最下面加入配置,passwd文件负责账号和密码的用户名单管理
//用户名就是组添加成员是的用户名,密码为helloworld1 rainbol1 = helloworld1
rainbol2 = helloworld2
rainbol3 = helloworld3
vi conf/svnserve.conf 打开第三个文件在打开下方红框中的配置即可,svnserve.conf文件负责svn服务器配置文件
运行:
svnserve -d -r <your path> -d表示后台运行,-r /path 指定目录启动
如:svnserve -d -r /var/svn/svnrepos --listen-port 3691 后面加参数可以设置自定义端口号,默认端口是3690
注意:注释打开要顶格,不要留有空格,不然会报错
使用常用命令大全:
作为存储代码的svn服务器:(上述操作)
进程一直开着就行了,不用管
作为项目版本控制服务器:
从svn服务器拉取代码:
svn co <svn服务器路径> --username <your username> --password <your password>
往svn服务器添加文件:
svn add <your file load>
将改动的文件提交到版本库:
svn ci -m “<LogMessage>“ <-N> <--no-unlock> <your PATH>
为文件加锁,解锁
svn lock -m "<lockmessage>" <--force> <your path> #加锁 svn unlock <your path> #解锁
到某个版本(回档)
svn up -r <your version number> <your path>
信息查看
svn info svn log svn list
svn结合jenkins:
jenkins安装跳过
1.新建一个项目在general中选择使用自定义的工作目录,目录为项目目录,设置一个名称
2.点击高级->源码管理->选择Subversion->Repository URL为svn服务器路径,其他默认就好了
3.构建触发器->选择定时构建->添加日程表,根据自己的业务需要选择执行时间
4.构建->执行shell->在linux的root目录,建立shell脚本执行
5.构建后操作->也一样对构建后执行shell脚本
扩展:业务场景(公司使用svn服务器管理代码,测试人员拉取svn服务器不同项目的代码到测试服务器或本地进行测试,期间应用了CI结合svn实现判断不同项目目录执行不同jenkins_curl请求)
#!/bin/sh REPOS="$1" # 仓库的路径 REV="$2" # 新提交的版本号 SVNLOOK=/usr/bin/svnlook CHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS) #修改的目录集合 MASTERDIR=$(echo "$CHANGEDDIRS" | head -1) #CHANGEDDIRS里的主目录 MASTERDIR=${MASTERDIR%%/*} # 遍历提交的代码目录,同步到WEB服务器上,根据业务情况,暂时没用上 # PROJECT=$(echo $MASTERDIR | awk -F / '{print $2}') # 判断项目文件夹,MASTERDIR返回'project'if [ "$MASTERDIR" == "project1" ];then curl -X POST -v -u .... elif [ "$MASTERDIR" == "project2" ];then curl -X POST -v -u .... elif [ "$MASTERDIR" == "project3" ];then curl -X POST -v -u .... elif [ "$MASTERDIR" == "project4" ];then curl -X POST -v -u .... elif [ "$MASTERDIR" == "project5"];then echo 'pass' fi
jenkins的url配置查看https://www.cnblogs.com/RainBol/p/10980890.html
测试成功,可以触发钩子程序
版权声明:本文原创发表于 博客园,作者为 RainBol 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。