1. 程式人生 > >Windows平臺下結合 tortoiseSVN 和 VisualSVN Server 搭建SVN服務器並實現 web 站點同步

Windows平臺下結合 tortoiseSVN 和 VisualSVN Server 搭建SVN服務器並實現 web 站點同步

tar 效果 sql services 文檔 src 版本 att file

1. tortoiseSVN

關於 tortoiseSVN 的安裝使用詳見博文 TortoiseSVN的安裝及其簡單使用。

2. VisualSVN Server

關於 VisualSVN Server 的安裝使用詳見博文 VisualSVN-Server服務器的搭建。

或參考 VisualSVN Server的配置和使用方法(轉) 。

另外需要說明的是,VisualSVN Server 中 tag branch trunk用法,官方並沒有給出嚴格的限制,可參考如下2篇博文:

SVN中trunk,branches,tags用法詳解

SVN中tag branch trunk用法詳解

3. 實現 web 站點同步

在此之前,首先參考閱讀 windows下SVN服務器與web 站點的同步。

在web開發過程中,svn客戶端將修改提交至服務器後,在默認代碼倉庫(Repositories)中是無法看到文件的實際目錄結構的,比如對於開發項目keys,本地看到的文件目錄如下圖。

技術分享圖片

而於服務器端的 Repositories 文件中看到的文件目錄如下圖。

技術分享圖片

它並非實際項目文檔,而是版本控制相關文件。此時為了在服務器端獲得同客戶端相同的文檔目錄,需要在服務器指定一個路徑,並以tortoiseSVN checkout。至此在服務器端也獲得了同樣文件。

技術分享圖片

對於個人開發,為了實現提交代碼後實時預覽修改效果,需要能夠在服務端自動 checkout,基於 VisualSVN Server 與 .bat 文件實現方法如下:

1. 以項目keys為例,復制 hooks下的 post-commit.tmpl 模板,並修改後綴名為 .bat。

技術分享圖片

2. 將 post-commit.bat 中文本內容修改為

"C:\Program Files\VisualSVN Server\bin\svn.exe" update "C:\websites\keys" --quiet --username "UserName" --password "Password" 

其中 "C:\Program Files\VisualSVN Server\bin\svn.exe" 為可執行程序 svn.exe 的路徑,"C:\websites\keys"

為同步目標路徑。

註意:用戶名和密碼文本的上的雙引號不能略去。

3. 最關鍵的一步:就是svn服務端權限的問題;
否則可能會出現下列錯誤: 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服務的執行權限不夠,不能對指定目錄做讀寫操作。解決辦法,修改Visual SVN Server 。

簡單操作 win+R 運行 services.msc 找到visual svn server 服務 右鍵屬性 登陸面板 設置桌面交互或者管理員權限再試。

技術分享圖片

4. 至此,若在客戶端修改文件並提交至服務器後,對應站點目錄下的文件也同步更新。

Windows平臺下結合 tortoiseSVN 和 VisualSVN Server 搭建SVN服務器並實現 web 站點同步