經過SVN進行版本庫管理,每次提交後,都要在SVN服務器更新最新上傳的版本到WEB目錄進行同步。操做比較煩瑣,並且效率也低。使用SVN鉤子腳本進行WEB目錄同步,可很好的解決這方面的問題。因爲測試機器與SVN庫都在同一臺機器裏,因此處理起來比較方便。linux
svn項目下面有hooks目錄,裏面存放的是所有的鉤子腳本的模板web
post-commit.tmpl 爲客戶端commit提交後觸發windows
如下是windows和linux下自動更新版本庫的方法:服務器
在SVN 項目版本庫的存儲目錄下的hooks 目錄,新創建一個post-commit.bat 文件:svn
windows:post
@echo off
SET REPOS=%1
SET REV=%2
SET DIR=%REPOS%/hooks
SET PATH=%PATH%;
SET WORKING=E:/www/o135
svn update %WORKING% --username o135 --password o135123測試
注意:以上方法必須把SVN服務器安裝目錄下的bin加入到path路徑(環境變量)中。SVN經過setup進行安裝,默認會將bin目錄增長到path路徑中,若是經過壓縮包進行安裝,必需要手動增長。spa
要想知道此腳本是否出錯,可在cmd命令行裏輸入:C:\Documents and Settings\Administrator>e:/svn/hooks/post-commit.bat 進行測試。出現如下信息則代表腳本成功執行:.net
C:\Documents and Settings\Administrator>e:/svn/hooks/post-commit.bat
正在升級 ‘E:\www\o135′:
版本 15。命令行
紅色部分是版本庫的位置,你們按實際位置進行修改。
之後無論那臺機器,只能經過svn commit命令,都會觸發此腳本,自動同步web目錄中。
linux:
linux下原理跟windows是同樣的。只是新建的文件名不同。
在SVN 項目版本庫的存儲目錄下的hooks 目錄,新創建一個post-commit文件:
vi post-commit
增長如下代碼:
#!/bin/sh
WEB=/home/data/o135
export.UTF-8
svn update $WEB --username o135 --password 'o135123'
保存,退出。。
給予此腳本的權限:
chmod 777 post-commit
測試一下,看腳本是否有權限問題
./post-commit
之後每次客戶端提交操做,就會自動運行該腳本。