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