同步程序思路:用戶提交程序到SVN,SVN觸發hooks,按不一樣的hooks進行處理,這裏用到的是post-commit,利用post-commit到代碼檢出到SVN服務器的本地硬盤目錄,再經過rsync同步到遠程的WEB服務器上。 python
知識點: 編程
一、SVN的hooks vim
# start-commit 提交前觸發事務 bash
# pre-commit 提交完成前觸發事務 服務器
# post-commit 提交完成時觸發事務 svn
# pre-revprop-change 版本屬性修改前觸發事務 post
# post-revprop-change 版本屬性修改後觸發事務 事務
經過上面這些名稱編寫的腳本就就能夠實現多種功能了,至關強大。 同步
二、同步命令rsync的具體參數使用 it
三、具備基個語言的編程能力bash python perl均可以實現
post-commit具體實現細節
post-commit腳本
編輯文件:sudo vim /home/svn/fitness/hooks/post-commit
注意:編輯完成post-commit後,執行:sudo chmod 755 post-commit
內容:
#!/bin/sh
export LANG=zh_CN.UTF-8
sudo /usr/bin/svn update /var/www/www --username mirze --password 123456
注意:svn倉庫文件夾的other必需要有執行權限否則腳本沒法執行。SVN update 以前必定要先手動checkout一份出來,還有這裏必定要添加用戶和密碼若是隻是手動同樣會更新,但自動同樣的不行。