魚飛之歌樓主如何利用svn自動同步更新到網(wǎng)站服務(wù)器
SVN 自動更新
1
本文的目的:在Win平臺搭建SVN服務(wù)器,,并且利用Hooks實現(xiàn)工作代碼提交后實時的更新到測試服務(wù)器,,以實現(xiàn)團(tuán)隊開發(fā)實時到服務(wù)器調(diào)試需求。 軟件平臺:Win Xp Sp3, SVN服務(wù)器程序 VisualSVN-Server-1.7.2.msi , SVN客戶端 TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi LanguagePack_1.6.2.16344-win32-zh_CN.msi(中文包) (SVN的客戶端用戶自行安裝) <!--more--> 一,、安裝 SVN服務(wù)器程序 1.1運(yùn)行 VisualSVN-Server-1.7.2.msi如下圖 1.2選擇程序安裝目錄 和 SVN倉庫目錄 如下圖 我程序裝在 C:\Program Files\VisualSVN Server, SVN倉庫目錄在 D:\SVN 1.3 安裝完成,,立即運(yùn)行 二、服務(wù)器配置 2.1服務(wù)器維護(hù)界面 2.2倉庫目錄默認(rèn)的內(nèi)容 2.3創(chuàng)建新項目wapzucom 2.3創(chuàng)建用戶ve 2.4設(shè)置項目的用戶權(quán)限 Properties Security Add選擇剛創(chuàng)建的用戶 veok應(yīng)用 確認(rèn) 三,、創(chuàng)建測試服務(wù)器目錄 D:\WWWROOT ,,本地開發(fā)目錄 D:\WORKDIR 四,、將代碼(D:\Code )導(dǎo)入到項目倉庫 輸入用戶名 密碼 并 勾選 保存認(rèn)證 導(dǎo)入成功,并返回版本號1 五,、導(dǎo)出項目代碼到工作副本,、測試服務(wù)器目錄 同理,另外導(dǎo)出一份到測試服務(wù)器目錄D:\WWWROOT (測試服務(wù)器的Apache目錄指向該位置) 六,、使用Hooks自動更新測試服務(wù)器代碼D:\WWWROOT 6.1 進(jìn)入 D:\SVN\wapzucom\hooks 建立 post-commit.bat 文件 編輯其內(nèi)容 為'C:\Program Files\VisualSVN Server\bin\svn.exe' update 'D:\www\test' --quiet --username name --password pwd 或者可參考下面這段話: 接下來最關(guān)鍵的一步是,,我們需要找到服務(wù)器上安裝的版本庫的路徑下面,以版本庫名稱命名的文件夾下,,有一個名字為hooks的文件夾,,在這個文件夾下建立post-commit.bat這樣一個批處理文件,里面的內(nèi)容如下: @echo off “D:\VisualSVN Server\bin\svn.exe” update “D:\Apache Software Foundation\Apache2.2\htdocs\soupei360″ –username XXXXX –password XXXXX update前面的路徑,,是SVN服務(wù)器端程序的執(zhí)行文件路徑,,后面的是在服務(wù)器上同步到的目錄的路徑,username和password后面是剛才建立用戶的用戶名和密碼,,這段批處理的意思是,,當(dāng)我們在本地編寫代碼,然后通過svn的commit提交時候,,首先提交到版本庫中,,然后版本庫自動用這個批處理,把內(nèi)容同步到服務(wù)器上之前指定的文件夾中,,從而實現(xiàn)本地和遠(yuǎn)程同步操作,。 兩款SVN配置軟件的具體配置教程可以通過搜索引擎得到具體設(shè)置方法,在此需要特意強(qiáng)調(diào)的是,,一定要將本地和服務(wù)器上的目錄都check out后,,批處理才能夠自動同步,服務(wù)器上的目標(biāo)文件夾沒有check out的話,,即使設(shè)置的路徑正確,,也是不能同步的。 6.2 設(shè)置訪問權(quán)限 我的電腦 右鍵管理 服務(wù)和應(yīng)用程序 服務(wù) VisualSVN Server右鍵 屬性 登陸 添加訪問權(quán)限 用系統(tǒng)管理員賬號(我這里是user) 重啟服務(wù)器 6.3測試Hooks工作是否正常 修改 index.php 狀態(tài)如下圖 提交修改 最后打開D:\WWWROOT\index.php 可以發(fā)現(xiàn)代碼已經(jīng)被成功update PS : 目錄說明 C:\Program Files\VisualSVN Server服務(wù)器安裝目錄 D:\SVN 倉庫更目錄 D:\WORKDIR本地開發(fā)用的工作目錄 D:\WWWROOT 服務(wù)器測試目錄(Apache 指向該目錄,即可實現(xiàn)工作目錄內(nèi)容修改后提交到SVN自動發(fā)布到測試目錄)
在使用中可能會遇到的錯誤排除 :
1.Error: svn: 解析“D:\www\test”出錯,,或svn: E020024: Error resolving case of 'D:\www\test'',,則有可能是因為目標(biāo)文件名之后多加了”\” 2.“D:\www\test'或Skipped 'd:\www\test',則可能是因為沒有執(zhí)行步驟提交更新處理文件 即上面提到的.bat文件,svn.exe不認(rèn)識目標(biāo)文件夾 3. Working copy 'D:\www\test' is too old,,則可能需要使用sven.exe upgrade命令重新整理一下目標(biāo)文件夾 或者重新安裝一個較高客戶端版本至少要2.6以上吧 4.還有一個注意問題——Visual SVN Server的權(quán)限,,否則可能會出現(xiàn)下列錯誤: post-commit hook failed (exit code 1) with output: svn: E155004: Working copy 'D:\www\Test' locked svn: E200031: sqlite: attempt to write a readonly database svn: E200031: sqlite: attempt to write a readonly database svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 原因是Visual SVN Server服務(wù)的執(zhí)行權(quán)限不夠,不能對指定目錄做讀寫操作,。解決辦法,,修改Visual SVN Server 簡單操作 win R運(yùn)行 services.msc 找到visual svn server 服務(wù) 右鍵屬性 登陸面板 設(shè)置桌面交互或者管理員權(quán)限再試 如果遇到其他錯誤請貼下面,咱們共同減少安裝錯誤,謝謝 |
|