中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下安裝SVN服務(CentOS7下)多倉庫版(老威改良版)

發布時間:2020-07-09 09:51:09 來源:網絡 閱讀:1791 作者:cswllz 欄目:建站服務器

單倉庫版請坐飛機過去 http://cswllz.blog.51cto.com/2746613/1933598

說操作前,我說一下我的環境,服務器用的是centos7.3,服務器用BT(寶塔系統),對操作文件速度快些,不用自己打命令,咱們要的是效率嘛,編輯器用Sublime text3

這里要說的是多倉庫版,和單倉版基本類似,區別在于authz和passwd兩個文件的處理

因為多倉庫是2個及以上的數量,為了方便管理權限、用戶名和密碼,結構如下圖

/var/svn     #這里是svn的根目錄/var/svn/project1 #這里是倉庫1/var/svn/project2 #這里是倉庫2

重點在這里

1、把project1下面的conf文件夾下面的authz和passwd復制到svn根目錄下(/var/svn),這樣一來authz、passwd、project1、project2屬于同一級目錄下了

2、用Sublime text3打開authz(以下為內容)


[groups]
#svngroup 為用戶組,laowei為用戶
svngroup = laowei,laowei2
#"="號左右必須有一個空格
[laowei:/]
#表示svngroup組對根目錄下的laowei域有讀寫權限,r為讀,w為寫
@svngroup = rw

操作完以上,就可以保存authz

3、用Sublime text3打開passwd(以下為內容)

[users]
laowei = 123456
laowei2 = 123456

4、用Sublime text3分別打開/var/svn/project1/conf和/var/svn/project2/conf下的svnserve.conf,加入以下內容

[general]
#控制非鑒權用戶訪問版本庫的權限
anon-access = none
#控制鑒權用戶訪問版本庫的權限
auth-access = write
#指定用戶名口令文件名
password-db = ../../passwd
#指定權限配置文件名
authz-db = ../../authz
#指定版本庫的認證域,即在登錄時提示的認證域名稱
realm = laowei
#這里的laowei和第二點中的[laowei:/]對應

---------------以上處理完畢,環境這真就OK了---------------------

當我們本地環境svn up到倉庫里,想讓倉庫更新的同時,測試網站也同步更新,怎么辦?這里我們就需要用到鉤子,不要因為不知道什么是鉤子而害怕,照下面說的操作就行了

第一步 創建鉤子,以project1為例,在/var/svn/lw_taoke/hooks下,新建名為post-commit的文件,注意,這個文件沒有擴展名,在寶塔系統下建立非常方便,建好把下面代碼復制進去

#!/bin/sh
 
REPOS="$1"                  # 倉庫的路徑
REV="$2"                    # 新提交的版本號
LOGFILE=/var/log/svn_lw_taoke.log    # 鉤子腳本的日志
# 腳本的標準輸出和標準錯誤輸出都打印到日志文件里
exec 1>>"$LOGFILE"
exec 2>&1
 
SVNLOOK=/usr/bin/svnlook
TIME=$(date "+%Y-%m-%d %H:%M:%S")
AUTHOR=$($SVNLOOK author -r $REV "$REPOS")  #提交作者
CHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS) #修改的目錄集合
MESSAGE=$($SVNLOOK log -r $REV "$REPOS")    #提交時的備注信息,不建議用中文
 
# SVN客戶端配置,需要自行修改**********************************
CLIENT1=10.14.213.21        #project1的服務器
#CLIENT2=172.16.4.236        #project2的服務器
CLIENTSVNROOT=/www/wwwroot/we.chenshangwei.com    #WEB服務器的代碼根目錄
SVNUSER="lw_taoke"
SVNPASSWD="Baihdgvcsw351"
#**************************************************************
 
function myecho() {
    echo "$TIME" "$*"
}
 
myecho "**************************************************************"
myecho "提交版本:$REV 作者:$AUTHOR"
myecho "提交備注:$MESSAGE"
myecho "修改目錄:$(echo $CHANGEDDIRS | tr '\n' ' ')"
 
MASTERDIR=$(echo "$CHANGEDDIRS" | head -1)  #CHANGEDDIRS里的最上級目錄
# 遍歷提交的代碼目錄,同步到WEB服務器上

while [ "$CHANGEDDIRS" != "" ];do
    PROJECT=$(echo $MASTERDIR | awk -F / '{print $1}')
    # 判斷項目文件夾
    
        myecho
        myecho "項目:$PROJECT 同步目錄:$MASTERDIR"
        myecho "同步 $MASTERDIR 到 $CLIENT1:$CLIENTSVNROOT/$MASTERDIR"
        # 無密碼ssh連接到客戶端服務器,執行svn up
		export LANG=en_US.UTF-8; sudo -u www svn up --non-interactive --username $SVNUSER --password $SVNPASSWD "$CLIENTSVNROOT"/lw_taoke
		
        #svn up --non-interactive --username $SVNUSER --password $SVNPASSWD "$CLIENTSVNROOT"/lw_taoke
    
    # 在目錄集合里刪除子目錄
    CHANGEDDIRS=$(echo "$CHANGEDDIRS" | grep -v "^$MASTERDIR")
    # 獲取新的需要同步的最上級目錄
    MASTERDIR=$(echo "$CHANGEDDIRS" | head -1)
done

第二步 切換到測試網站根目錄,打入以下命令,意思是撿出倉庫中的代碼,并把project1的所有者改成www

sudo -u www svn co svn://10.14.213.219/lw_test /www/wwwroot/project1

第三步 在你本地網站上操作撿出功能,然后在撿出的目錄下,你可以新建個文件或文件夾,提交更新就會把這個文件或文件夾同步到測試網站了,是不是很方便


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

波密县| 朝阳市| 桐乡市| 沾益县| 清水县| 苍溪县| 平远县| 连州市| 镇江市| 格尔木市| 施秉县| 南雄市| 常熟市| 德昌县| 微山县| 柞水县| 视频| 调兵山市| 旺苍县| 焉耆| 平山县| 成都市| 宁河县| 溧水县| 靖安县| 巴里| 民县| 新沂市| 新巴尔虎左旗| 新丰县| 万宁市| 黄梅县| 清流县| 涟水县| 湘西| 高邮市| 开远市| 顺昌县| 新平| 马鞍山市| 时尚|