天天看點

SVN搭建與自動部署

一.安裝與基本指令

1.yum安裝svn (注意防火牆開發端口号,如果是 雲伺服器,需要添加安全組開發端口号)

svnserve --version (檢測是否安裝)

yum install -y subversion 直接安裝

yum remove subversion 解除安裝

2.建立svn資源倉庫

svnadmin create svn(倉庫名稱) 建立svn倉庫

3.有以下幾個配置檔案 conf db format hooks locks README.txt

在conf中 authz #權限配置檔案 在[groups]下面加入: [/]
  • = rw #所有使用者有讀寫權限 dangerman = ##危險分子?什麼是危險分子?沒有任何權限 [svndir:/] ###定義目錄,項目的根目錄
passwd #使用者名密碼檔案 
    在[users]中加上  yunwei(名稱) = 123456(密碼)
svnserve.conf #資源庫配置檔案
    這個配置檔案打開下面幾行前面的注釋,删除最前面的空格: 
    anon-access = none
    auth-access = write 
    password-db = passwd 
    authz-db = authz 
    realm = My First Repository      

4.啟動 檢視狀态 停止

svnserve -d -r /opt/svn (安裝位置) 啟動 ps -aux|grep svnserve (檢視狀态) 關閉 killall svnserve

5.克隆 更新 檢視 等

svn co(checkout) $url(svn://xx.xxx.xxx.xxx/test) 檔案夾名 #拉取項目 svn log -l 5  檢視 svn 檔案的最近5條記錄

6.SVN中 trunk(主分支) branchs(分支) tags(标記) 的差別

branch 和tag,對于svn都是使用 copy 實作的,是以他們在預設的權限上和一般的目錄沒有差別

truck(主分支):是用來做主方向開發的,新功能的開發應放在主線中,當子產品開發完成後,需要修改,就用branch。

branch(分支):分支開發和主線開發是可以同時進行的,也就是并行開發,分支通常用于修複bug時使用

tag(标記):用于标記某個可用的版本,可以标記已經上線釋出的版本,也可以标記正在測試的版本,通常是隻讀的

7.友情連結

菜鳥教程

二.自動部署項目

1.第一種情況:部署的項目和svn在同一伺服器時

在 svn 目錄的 /hooks 裡面有一堆tmpl,這些tmpl可以做很多事情 自動部署post-commit.tmpl tmpl檔案是模版檔案

①. 要用post-commit需要手動複制一份

cp post-commit.tmpl post-commit      

②.post-commit檔案内容如下

!/bin/sh #其中第一行意思是:用sh來解析這個腳本,因為各種shell的文法有細微的差别
export LANG=zh_CN.UTF-8 #第二行是編碼格式:這裡我使用的是UTF-8
/usr/bin/svn update --username **** --password **** /opt/www/test  #最後一行/usr/bin/svn 是svn的路徑 後面是使用者名、密碼、和項目路徑      

③.修改post-commit的可執行權限

chmod 755 post-commit      

④.拉取項目

在伺服器進入項目目錄/opt/www/test checkout 整個項目;

svn checkout svn://{您的伺服器位址}:{端口号}/test . 注意目錄後面還有一個點