svn服務器端的客戶端自動更新

先說這個方式的一個弊端,那就是服務器端這邊代碼不能與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=%2
code

SET DIR=%REPOS%/hooks
SET PATH=%PATH%;
blog

SET WORKING_COPY=D:/Websites/www
svn update %WORKING_COPY% --username your_name --password your_pwd
get

注意填寫客戶端地址、用戶名和密碼,這裏的是: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=%2

SET 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服務對文件桌面系統權限,不然會報沒法讀寫文件的錯:

選擇本地系統帳戶,並勾選 容許服務與桌面交互

image

OVER

ORG: http://blog.donews.com/me1105/archive/2010/12/05/82.aspx

相關文章
相關標籤/搜索