linux svn配置hooks


先創建倉庫:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM