Linux下SVN配置

不該相遇在秋天發表於2017-08-14

 

1.安裝svn
yum install subversion

 

2.建立版本庫fengyu
(版本庫的名字取來和你web專案的名字相同,否則你在伺服器檢出後會變成web專案裡還有一層版本庫的目錄,裡面才是專案,名字相同的話就不用建立web專案目錄,直接在www下面進行檢出就OK。)
mkdir -p /var/svndata/fengyu
svnadmin create /var/svndata/fengyu

 

4.進入conf目錄
cd /var/svndata/fengyu/conf

 

5.新增一個使用者為zhangsan密碼123456
vi passwd
新增zhangsan=123456

 

6.設定許可權
vi authz
新增如下資訊
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin=zhangsan

[/]
@admin=rw
*=r

將zhangsan設定為admin使用者組
在本庫中,使用者組為admin的使用者有讀寫許可權,其他使用者只有讀許可權

 

7.全域性配置
vi svnserve.conf
在最底下新增如下資訊
[general]
anon-access = read #匿名使用者可讀
auth-access = write #授權使用者可寫
password-db = passwd #使用哪個檔案作為賬號檔案
authz-db = authz #使用哪個檔案作為許可權檔案
realm = fengyu # 認證空間名,版本庫所在目錄


8.啟動svn版本庫:
svnserve -d -r /var/svndata/fengyu
注意 如果要配置多個版本庫 那麼就啟動版本庫的上一級目錄
如:我要搭建一個fengyu2和fengyu3與fengyu同級 那麼就啟動svndata這個目錄 這樣就可以在客戶端連結svn://ip/fengyu2


9.伺服器檢出
cd /var/www 進入你的www目錄
svn co svn://localhost/fengyu
先輸入伺服器root密碼再輸入svn的賬號密碼然後再選擇yes


10.自動更新
cd /var/svndata/fengyu/hooks
cp post-commit.tmpl post-commit
chmod 755 post-commit
vi post-commit
將最下面三行註釋掉 新增如下內容 請注意路徑填實際路徑
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2"
WEB_PATH=/var/www/fengyu
LOG_PATH=/var/log/svn_commit.log
CURDATE="date"

/usr/bin/svn update $WEB_PATH --username zhaobl --password Z5201314 >> $LOG_PATH


11.強制新增註釋
cp pre-commit.tmpl pre-commit
chmod 755 pre-commit
vi pre-commit把檔案下面的全部註釋 然後新增如下內容


REPOS="$1"
TXN="$2"
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c)
if [ "$LOGMSG" -lt 10 ]; then
echo -e "\n 提交檔案時請新增註釋,提交中止."1>&2
exit 1
fi


PS:這個限制字數,如果是數字英文會嚴格計算字元,但如果是中文就不管用了,如果有哪位兄弟懂的話請告知一二,感謝。

 

相關文章