SVN服務(wù)器搭建:http://blog.chinaunix.net/uid-21146222-id-5761320.html
安裝步驟如下:
1、yum install subversion
2、查看安裝版本 svnserve --version
3、創(chuàng)建SVN版本庫(kù)目錄 mkdir -p /home/svn/svnproj
4、創(chuàng)建版本庫(kù) svnadmin create /home/svn/svnproj
5、進(jìn)入conf目錄(該svn版本庫(kù)配置文件)cd conf/
authz文件是權(quán)限控制文件
passwd是帳號(hào)密碼文件
svnserve.conf SVN服務(wù)配置文件
6、設(shè)置帳號(hào)密碼 vi passwd
在[users]塊中添加用戶和密碼,格式:帳號(hào)=密碼,如quwenzhe=123456
7、設(shè)置權(quán)限 vi authz
在末尾添加如下代碼:
意思是quwenzhe對(duì)版本庫(kù)的根目錄有讀寫(xiě)權(quán)限
8、修改svnserve.conf文件 vi svnserve.conf
打開(kāi)下面的幾個(gè)注釋:
anon-access = read #匿名用戶可讀
auth-access = write #授權(quán)用戶可寫(xiě)
password-db = passwd #使用哪個(gè)文件作為賬號(hào)文件
authz-db = authz #使用哪個(gè)文件作為權(quán)限文件
realm = something # 描述
9、啟動(dòng)svn版本庫(kù) svnserve -d -r /home/svn(注意:這里是到svn這一級(jí)根路徑,而不是到svnproj)
(PS:停止SVN命令 killall svnserve)
10、在windows上測(cè)試
輸入SVN地址,如下圖:svn://yourserver.com/svnproj
輸入用戶名、密碼,如下圖:
到此,在CentOS 7上搭建SVN服務(wù)器的操作步驟完畢。
接下來(lái)利用hooks實(shí)現(xiàn)代碼的自動(dòng)提交部署
# cd hooks
# cp post-commit.tmpl post-commit # .tmpl只是模板文件,真正起作用的是不帶擴(kuò)展名的腳本
# vim post-commit
文件末尾添加
svn checkout "svn://yoursvnserver" /usr/share/nginx/html --force --username="admin" --password="admin" --non-interactive
exit 0
:wq
# chmod 777 post-lock # 賦予腳本執(zhí)行權(quán)限
以上代碼的意思是,當(dāng)發(fā)生svn提交操作時(shí),自動(dòng)簽出最新代碼版本到nginx的html目錄下。注意:最后的exit0不可或缺,否則會(huì)報(bào):
post-commit hook failed (exit code 255) with no output
之后每次提交最新的代碼即可自動(dòng)同步到nginx服務(wù)器下。關(guān)于svn hooks的更多用法:
事 件名 | 時(shí) 機(jī) | 與 hook 交 互 | 一 般用途 |
start-commit | 事務(wù)創(chuàng)建之前。 | 傳給 hook 的 參數(shù): - 參 數(shù) 1 , 代碼庫(kù)路徑。 - 參 數(shù) 2 , 試圖提交的用戶名。 hook 的返回值:非 0 則 終止。 | 判斷用戶是否有權(quán)限進(jìn)行提交 操作。 |
pre-commit | 事務(wù)完成,但未提交。 | - 參 數(shù) 1 , 代碼庫(kù)路徑。 - 參 數(shù) 2 , 事務(wù)名。 hook 的返回值:非 0 則 終止提交,操作回滾。 | 對(duì)提交內(nèi)容進(jìn)行檢查。如要求 提交必須填寫(xiě)提交信息。 |
post-commit | 事務(wù)提交完畢,新的修訂版被 創(chuàng)建。 | 傳給 hook 的 參數(shù): - 參 數(shù) 1 , 代碼庫(kù)路徑。 - 參 數(shù) 2 , 剛創(chuàng)建的修訂版號(hào)。 hook 的返回值被忽 略。 | 發(fā)送郵件通知,或備份代碼 庫(kù)。 |
pre-revprop-change | 修改修訂版屬性(如提交時(shí)提 供的信息 message )之前。 由于修訂版屬性一旦修改就會(huì) 永久的丟失,除非安裝這個(gè)事件的 hook ,subversion 的 客戶端不允許遠(yuǎn)程修改修訂版屬性。 | 傳給 hook 的 參數(shù): - 參 數(shù) 1 , 代碼庫(kù)路徑。 - 參 數(shù) 2 , 要修改的修訂版號(hào)。 - 參 數(shù) 3 , 操作用戶名。 - 要 修改的屬性。 hook 的返回值:非 0 則 終止。 | 保存修訂版屬性的改變記錄。 |
post-revprop-change | 修訂版屬性值被修改之后。 如果沒(méi)有安裝 pre-revprop-change 的 hook , 這個(gè)事件的 hook 不會(huì)被執(zhí)行。 | 傳給 hook 的 參數(shù): - 參 數(shù) 1 , 代碼庫(kù)路徑。 - 參 數(shù) 2 , 要修改的修訂版號(hào)。 - 參 數(shù) 3 , 操作用戶名。 - 要 修改的屬性。 hook 的返回值被忽 略。 | 發(fā)送郵件通知。 |
參考:http://blog.csdn.net/deepwishly/article/details/5366757
http://blog.csdn.net/cx118118/article/details/53427796
https://zhidao.baidu.com/question/1821333664904490708.html
posted on 2017-06-22 14:51
思月行云 閱讀(784)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
服務(wù)器\Ops