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 本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM