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


通過SVN進行版本庫管理,每次提交后,都要在SVN服務器更新最新上傳的版本到WEB目錄進行同步。操作比較煩瑣,而且效率也低。使用SVN鈎子腳本進行WEB目錄同步,可很好的解決這方面的問題。由於測試機器與SVN庫都在同一台機器里,所以處理起來比較方便。

 

svn項目下面有hooks目錄,里面存放的是全部的鈎子腳本的模板

post-commit.tmpl 為客戶端commit提交后觸發

以下是windows和linux下自動更新版本庫的方法:

在SVN 項目版本庫的存儲目錄下的hooks 目錄,新建立一個post-commit.bat 文件:

windows:

@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路徑中,如果通過壓縮包進行安裝,必須要手動增加。

要想知道此腳本是否出錯,可在cmd命令行里輸入:C:\Documents and Settings\Administrator>e:/svn/hooks/post-commit.bat  進行測試。出現以下信息則表明腳本成功執行:

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 LANG=en_US.UTF-8
svn update $WEB --username o135 --password 'o135123'

 

保存,退出。。

給予此腳本的權限:

chmod 777 post-commit

測試一下,看腳本是否有權限問題

./post-commit

以后每次客戶端提交操作,就會自動運行該腳本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM