linux下svn的使用

 

环境搭建:

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

posted @ 2019-06-05 13:12  RainBol  阅读(5639)  评论(0编辑  收藏  举报
Live2D