1. 前提已安裝svn
安裝:yum install subversion
查看版本:svnserve --version
2. 創建新的svn項目
假設安裝的目錄地址:/www/svn
1)進入到該目錄
2)創建:svnadmin create /www/svn/test (test爲測試目錄)
3)進入到新的項目的conf目錄下:cd /www/svn/test/conf
4)修改passwd文件:vi passwd
創建賬號 = 密碼
[users]
#harry = harryssecret
#sally = sallyssecret
wangjz = wangjz
5) 修改authz 文件 (添加項目權限配置)vi authz
例如:[文件名:/]
賬號 = 讀寫
[test :/]
wangjz = rw
多個用戶
[groups]
php = wangjz,wangjz1,wangjz2
[test:/]
@php = rw
6)修改svnserve.conf 文件;vi svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
7)停止svn
killall svnserve
8)啓動svn項目
svnserve -d -r /www/svn/
加端口啓動:svnserve -d -r /www/svn/test --listen-port 3691
查看svn進程 ps aux|grep svn
9)實時檢出到指定文件夾,需要進入hooks文件夾裏新建文件post-commit
內容如下:
#!/bin/bash
# description:用於實時檢出的鉤子
# 基本變量
export LANG=en_US.UTF-8
dateTime=`date +%F`
dateTimeMinute=`date +%H%M%S`
binSvn=/usr/bin/svn # 你svn的絕對路徑
dirHtmlApp=/www/vhost/src #檢出的web站點根目錄
logFileName=/tmp/svn/svnhooks_${dateTime}.log
# svn配置
REPOS="$1"
REV="$2"
# 檢出或者更新subversion,鉤子的核心功能
echo "-- $dateTimeMinute" >> $logFileName
if [ ! -d $dirHtmlApp/.svn ]; then
# 檢出SVN
echo "$binSvn co file://$REPOS/ $dirHtmlApp" >> $logFileName
$binSvn co file://$REPOS/ $dirHtmlApp
if [ $? -eq 0 ]; then
echo "checkout ok" >> $logFileName
else
echo "checkout error" >> $logFileName
fi
else
# 更新svn
echo " $binSvn up $REV $dirHtmlApp " >> $logFileName
$binSvn up $REV $dirHtmlApp >> $logFileName
if [ $? -eq 0 ]; then
echo " update sucess " >> $logFileName
else
echo " update fial " >> $logFileName
fi
fi
echo "--" >> $logFileName
給文件添加執行權限
chmod a+x /www/svn/test/hooks/post-commit