先創建倉庫:
svnadmin create /data/svn/my.com
再配置權限:
#cd /data/svn/my.com/conf/
#vim svnserve.conf 配置
[general] anon-access = none # 使非授權用戶無法訪問 auth-access = write # 使授權用戶有寫權限 password-db = /data/svn/repos/100med.com.cn/conf/passwd # 指明密碼文件路徑 authz-db = authz # 訪問控制文件 realm = My First Repository # 認證命名空間,subversion會在認證提示里顯示,並且作為憑證緩存的關鍵字。
#vim authz 配置訪問目錄權限
#分組配置 [groups] RD = codesvn PP = CHINA [/data] @PP =rw #根目錄權限,只有RD組則有權限訪問 [/] @RD = rw * =
#vim passwd 配置用戶和密碼
[users]
codesvn = ffdsafdsafsdfasdfasfs
配置勾子:
#cd /data/svn/my.com/hooks/
#cp post-commit.tmpl post-commit
#chmod +x post-commit #給執行權限
#!/bin/sh svn update --username codesvn --password xxxxxxxxxxxxxxx /data/wwwroot/my.com/ 2>>/data/logs/svn/my.com_post_commit_log.txt
再遷出一份:(非常重要,讓勾子知道是哪個目錄)
svn co svn://ip/my.com/ /data/wwwroot/my.com/
重啟svnserve
#killall svnserve
#svnserve -d -r /data/svn/
-d 為守護進程
-r svn倉庫目錄
常見問題:
1.設置了hooks不自動更新代碼?
首先,查看日志,多數原因可能是因為編碼問題。(export LANG=en_US.UTF-8)
參考代碼:
#!/bin/sh REPOS="$1" REV="$2" log_path=/data/logs/svn.my.log export LANG=en_US.UTF-8 echo `whoami`,$REPOS,$REV >> $log_path svn update --username svnname--password 1e26cd8217 /data/wwwroot/sgfoot.com/ 2>>$log_path --no-auth-cache exit 0