先說這個方式的一個弊端,那就是服務器端這邊代碼不能與svn服務器出現衝突,一旦衝突就失效。服務器
實現原理是,利用svn版本庫,hooks目錄的bat鉤子開展工做。svn
共在hooks目錄下創建3個文件以下:
post-commit.bat 做用是:鉤子入口!
postcommit.log 做用是:記錄最後一次執行的結果(能夠記錄最後一次報錯)創建一個空文件就好!
post-commit-run.bat 做用是:自動更新的核心部分!post
post-commit.bat的代碼是:spa
call %~dp0post-commit-run.bat %* > %~dp0postcommit.log 2>&1
post-commit-run.bat的代碼是:命令行
@echo off日誌
SET REPOS=%1
SET REV=%2code
SET DIR=%REPOS%/hooks
SET PATH=%PATH%;blog
SET WORKING_COPY=D:/Websites/www
svn update %WORKING_COPY% --username your_name --password your_pwdget
注意填寫客戶端地址、用戶名和密碼,這裏的是:D:/Websites/www、admin和123456. 同步
hooks目錄地址:配置密碼那邊,如圖
另一個別人的博客,大同小異,只是比較簡單,沒有作日誌而已
在Windows 03 Server上搭建了 VisualSVN 服務器,想要設置成當提交到SVN中的任何修改都同步更新到本機服務器上的WEB目錄下。
根據網上各類版本的參考,基本上上使用svn自帶的hook功能實現:
在SVN 項目版本的存儲目錄的hooks 目錄中,創建一個post-commit.bat 文件:
@echo off
SET REPOS=%1
SET REV=%2SET DIR=%REPOS%/hooks
SET PATH=%PATH%;SET WORKING_COPY=D:/Websites/www
svn update %WORKING_COPY% --username your_name --password your_pwd
注意事項:
1.須要將SVN服務器的bin目錄加入到path路徑中,加入後,未重啓,在命令行下path值當即生效,可是SVN服務器卻沒法找到,老是提示:
警告: post-commit hook failed (exit code 1) with output:
'svn' 不是內部或外部命令,也不是可運行的程序或批處理文件。
2.須要設置SVN服務對文件桌面系統權限,不然會報沒法讀寫文件的錯:
選擇本地系統帳戶,並勾選 容許服務與桌面交互
OVER
ORG: http://blog.donews.com/me1105/archive/2010/12/05/82.aspx