linux搭建svn服務並手動同步代碼到web目錄和自動更新


1.安裝svn服務端

yum -y install subversion

2.查看安裝路徑等信息

rpm -ql subversion

3.查看svn幫助信息

svn help

4.創建svn版本庫目錄(這是個大庫,里面用svnadmin創建的才是各個項目的庫)

mkdir /home/svnDB

5.創建版本庫(項目)

mkdir /home/svnDB/test/

svnadmin create /home/svnDB/test/

6.配置版本庫

進入/home/svnDB/test/conf,里面有三個文件

authz文件是權限控制文件

passwd是帳號密碼文件

svnserve.conf SVN服務配置文件

(1)在passwd文件的[users]塊中添加用戶名和密碼:賬號=密碼,例如username=password

(2)在authz的末尾增加

[/]

username=rw

(*=)這個是其他的都沒有讀寫權限,前面的才有

(3)在svnserve.conf

去掉四個個的前面的#號,如下

anon-access = none(匿名用戶設置為none,這樣才能看到日志信息,否則日志顯示nodate)

auth-access = write #授權用戶可以寫

password-db = passwd #使用passwd作為賬號文件

authz-db = authz #使用authz作為權限文件

ps:注意,前面不能有空格

7.啟動svn服務,這里啟動大倉庫

svnserve -d -r /home/svnDB

8.客戶端安裝這里略過,直接進入服務端的更新到web目錄

svn co svn://你的ip 你想放在那個目錄(這樣的創建到web目錄如果更新可以在那個目錄下直接svn update,但是有svn的隱藏文件)

svn export svn://你的ip 你想放在哪個目錄(這樣的web目錄沒有svn隱藏文件,但是不能直接用svn update更新,推薦上面的)

9.使用鈎子進行svn自動更新到web目錄

(1)、cd  /home/svnDB/test/hooks/ 

(2)、cp cp post-commit.tmpl post-commit (復制這份模板文件,因為svn將要執行的是post-commit文件)

(3)、vim post-commit 

將最后面幾行刪除

REPOS="$1"
REV="$2"
mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

============================================================

然后加上自己將要執行的同步的命令

export LANG=zh_CN.UTF-8  #(這句話比較重要,如果客戶端跟服務器編碼不一樣會出現同步失敗)
WEB=你的web目錄  #(將要同步過去的web項目路徑)
/usr/bin/svn update $WEB  #(/usr/bin/svn代表你的svn服務文件地址 如果是通過yum安裝的話,或者已經注冊了svn服務,則可以直接使用svn,不需要輸入全路徑)

wq!保存退出,此時已經完成更新命令

===========================================================================================================================

設置post-commit文件可以執行權限(若不設置則會出現commit false 255錯誤)

chmod  a+x  post-commit  (或者chmod  777 post-commit)

10.將svn設置開機啟動

找個地方寫個腳本,svnserve命令最好用絕對路徑,可用which svnserve查找,如我的在/usr/bin/svnserve

腳本內容如:

#!/bin/bash

/usr/bin/svnserve -d -r /home/svnDB

保存之后加入到開機啟動文件那里

11.設置分組和目錄權限

我們開發的時候是多人,多人可能屬於一個組,有些組權限大,有些組權限小

打開配置文件authz,在[groups]區寫上分組信息,如

g48=akb,ske,nmb

other=mike,tom

然后權限配置

[/]

@g48=rw(以@開頭就是指這個組,這里/指所有的倉庫的所有目錄都有rw權限)

[test:/controllers]

@other=rw(這里是test倉庫下的controllers文件夾有rw權限,這個組checkout項目的時候地址就是svn://ip地址/test/controllers)

設置這些權限之后還要對應的去passwd文件設置帳號密碼,然后重啟svn

12.開啟修改日志權限

只要將文件hooks目錄下的pre-revprop-change.tmpl改名為pre-revprop-change,並加上執行權限即可。

不過這樣所有人都可以修改,還能修改其他人的日志


免責聲明!

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



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