环境搭建:

  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 -) #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本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

最新文章

  1. ORACLE 日常处理办法
  2. JQuery经典小例子——可编辑的表格
  3. 创意设计展示:折叠效果在移动 App 中的应用
  4. Rewrite规则简介
  5. Visual Studio 2012下Box2D开发环境设置
  6. MFC消息映射机制
  7. 我和CPP的第二次约会
  8. sdk manager更新失败,显示Download interrupted: read timed out,应该如何解决?
  9. winform 之1---窗体介绍
  10. url编码&amp;&amp;PHP大法
  11. java(MyEclipse)创建webservice和测试webservice
  12. 加载静态界面----,要不要会加载cookie和页面参数
  13. 浏览器的同源策略及CORS跨域解决方案 DRF
  14. spring3.2.2 remoting HTTP invoker 实现方式
  15. 【译】写好JavaScript条件语句的5个技巧
  16. 在grails中远程调用action
  17. mac 下 使用 java运行 class 文件 总是提示 “错误: 找不到或无法加载主类”的解决方法
  18. javaBean转为json
  19. CF 1070J Streets and Avenues in Berhattan
  20. SQL SERVER 聚集索引 非聚集索引 区别

热门文章

  1. java 多线程 面试
  2. java面试 (六)
  3. python局部变量和全局变量(6)
  4. windows下大数据开发环境搭建(1)——Java环境搭建
  5. QT QML 在qml中自定义信号
  6. sync包 — 汇总
  7. Django——用户认证
  8. 15.Python略有小成(内置模块Ⅰ)
  9. machine learning相关会议
  10. scrapy爬取相似页面及回调爬取问题(以慕课网为例)