建立版本庫檔案夾
# mkdir -p /data/svn/sinsvn
建立版本庫
# svnadmin create /data/svn/sinsvn
# mkdir -p /data/www/sinsvn
匯入所需管理的項目到版本庫repository中
# svn import /data/www/sinsvn/ file:///data/svn/sinsvn -m “svn first test”
檢查是否匯入成功
# svn list –verbose file:///data/svn/sinsvn
修改版本庫的設定檔
# vim /data/svn/sinsvn/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = ../../passwd
authz-db = ../../authz
realm =sinsvn
cp /data/svn/sinsvn/conf/passwd /data/svn
cp /data/svn/sinsvn/conf/authz /data/svn
修改允許訪問版本庫的使用者檔案
# vim /data/svn/passwd
[users]
harry = harryssecret
sin = sinssecret
surpersin = surpersin
# vim /data/svn/authz
[groups]
myteam = harry,sin
[/]
surpersin = rw
[sinsvn:/]
@myteam = rw
[secsvn:/www]
@myteam =r
sin= rw
[sincms:/]
sin= rw
harry=
啟動 svn 服務
# svnserve -d -r /data/svn/
至此,版本庫 sinsvn 就可以使用了。
多項目的話,有幾種解決方案:
1.啟動多個svn服務,每個SVN監聽不同的IP或連接埠。
# svnserve -d –listen-port 3690 -r /data/svn1
# svnserve -d –listen-port 3691 -r /data/svn2
2.在一個版本庫下,按項目分不同目錄,在authz控制各項目目錄的許可權。
[sinsvn:/pro1]
sin= rw
[sinsvn:/pro2]
@myteam =rw
3.SVN服務監聽版本庫的根目錄 /data/svn,然後在/data/svn下建立多個版本庫,在各版本庫下的設定檔中,指定使用者及許可權檔案到根目錄下的檔案,就可以集中管理了,上面的例子已經是按照這麼做的了。
# svnserve -d -r /data/svn/
svn 自動更新鉤子:
# cd /data/svn/sinsvn/hooks
# cp post-commit.tmpl post-commit
# vim post-commit
export LANG=zh_CN.utf-8
REPOS=”$1″
REV=”$2″
SVN=/usr/bin/svn
WEB=/data/website/shebao/
LOG=/data/svn/logs/shebao.log
$SVN update $WEB –username ruesin –password ruesin
if [ $? == 0 ]
then
echo “$REPOS” “$REV” >> $LOG
echo `date` >> $LOG
echo “####################” >> $LOG
fi