前言:開發人員的 工作目錄,是一份 版本庫 的 工作拷貝 ( 工作 副本)。不同開發人員擁有自己的一個工作目錄。通過用戶端的update、commit 等操作進行項目的并行開發。
一 安裝與配置SVN
1.安裝subversion
centos: yum install subversion
ubuntu: apt-get install subversion
2.建立版本庫,本例中我們的版本庫建立在/var/svn,假設該 版本庫目錄為:foo
cd /var
mkdir svn
svnadmin create foo
3.配置版本庫
剛才建立的版本庫,需要配置認證方式,使用者名和密碼,權限配置這三個檔案,分别對應/var/svn/foo/conf下的
svnserve.conf
passwd
authz
這三個檔案。
svnserve.conf(去掉注釋)
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = 填寫登入時提示的認證域名稱
如果要使用通用的使用者名密碼和權限認證,指定password-db和authz-db路徑到 相應passwd和authz檔案位置即可
passwd檔案添加相應使用者名和密碼:
user1 = password1
user2 = password2
authz檔案添加相應使用者名到組并配置設定庫權限:
[groups]
foo_user = user1,user2 (多個使用者以逗号分隔)
[/]
@foo_user = rw
* =
其中*=意味着匿名使用者沒有權限,引用組名時要加上@符号
4.啟動和使用 版本庫目錄為:foo
配置成功以後,啟動svn版本庫服務
svnserve -d -r /var/svn
從代碼庫中拉下代碼,即checkout 。簡寫:co
從代碼庫中拉下代碼 : svn co svn://ip位址/ foo
伺服器上擷取版本庫可以直接使用 svn co file:///var/svn/foo
二、同步到WEB目錄(工作目錄)
1.建立web目錄:(已有目錄則略過)
cd /var
mkdir www
chmod 777 www
2.檢出副本到 web目錄(工作目錄): /var/www
svn co file:///var/svn/foo 版本庫目錄為:foo
3.在版本庫上 增加hooks(鈎子)檔案
在/var/svn/foo/hooks/目錄中
# start-commit 送出前觸發事務
# pre-commit 送出完成前觸發事務
# post-commit 【送出完成時】 觸發事務
# pre-revprop-change 版本屬性修改前觸發事務
# post-revprop-change 版本屬性修改後觸發事務
我們這裡隻需要修改post-commit檔案:
cp post-commit.tmpl post-commit
編輯post-commit 檔案
#!/bin/sh
# 配置庫位址
REPOS="$1"
REV="$2"
# WEB目錄(工作目錄)
BASEPATH=/var/www
# web檔案夾名與svn庫名相同
NAME=$(basename $REPOS)
WEBPATH="$BASEPATH/$NAME"
# 避免中文資訊亂碼
export
# 可以配合svnlook指令更新【指定目錄】
svn update $WEBPATH --username=user1 --password=password1 --no-auth-cache
儲存後需要修改post-commit檔案權限為755,否則SVN無法調用執行
chmod 755 post-commit
=============項目中實際用到的post-commit 檔案============
==================add by zhaohao======================
cat post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
JAVA_HOME=/data/jdk1.7.0_67
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
SVN=/usr/bin/svn
WEB=/data/webapps/baihedai
export $REPOS" != "wallet.admin" -a "$REPOS" != "wallet.h5" ];
then
/data/apache-tomcat-7.0.55/bin/shutdown.sh
sleep 1
jps|grep Bootstrap|awk '{print $1}'|xargs kill -9
sleep 1
/data/apache-tomcat-7.0.55/bin/startup.sh
exit 0
fi