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