windows,linux下SVN實現自動更新WEB目錄

經過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

之後每次客戶端提交操做,就會自動運行該腳本。

相關文章
相關標籤/搜索