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

  • 相关阅读:
    费马小定理
    CF 1365D Solve The Maze
    CF 1367D Task On The Board
    CF 1368B Codeforces Subsequences
    CF 1368C Even Picture
    mybatis框架
    Ajax
    jdbc
    jQuery
    JSP
  • 原文地址:https://www.cnblogs.com/RainBol/p/10979014.html
Copyright © 2020-2023  润新知