天天看點

使用VisualSVN 鈎子腳本,同步到web應用目錄

廢話不說 配置鈎子吧

首先在apache的www目錄下建立一個檔案夾,進行checkout,輸入需要使用者名和密碼,将項目取出到該檔案夾中。我的是svn檔案夾(必不可少)

  1. 右鍵點選 Repositories中的項目
  2. 點選所有任務
  3. 選擇 Manage Hooks…
  4. 輕按兩下Commit下面的Post-commit hook
  5. 把下文中的指令填寫進去

找到SVN Server的Repositories目錄,在Repositories/test/hooks檔案夾中建立post-commit.bat,在其中寫入指令:

"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\www\test" --quiet --username name --password pwd  
           

(即執行svn update指令,請自行替換使用者名和密碼)

@echo off
SET REPOS=%
SET USER=%
SET SVN="C:/Program Files/VisualSVN Server/bin/svn.exe"
SET DIR="D:/WWW/svn" 
(call %SVN% update %DIR% --username 你的賬号--password 你的密碼 --non-interactive)
           

大功告成。

注:

1.web目錄下一定要用TortoiseSVN checkout出Repositories的代碼

2.-username izaodao –password izaodao

izaodao替換為登入svn的使用者名和密碼

在使用中可能會遇到的錯誤排除 :

  • Error: svn: 解析“D:\www\test”出錯,或svn: E020024: Error resolving case of ‘D:\www\test”’,則有可能是因為目标檔案名之後多加了”\”
  • “D:\www\test”或Skipped ‘d:\www\test’,則可能是因為沒有執行步驟送出更新處理檔案 即上面提到的.bat檔案,svn.exe不認識目标檔案夾
  • Working copy ‘D:\www\test’ is too old,則可能需要使用sven.exe upgrade指令重新整理一下目标檔案夾 或者重新安裝一個較高用戶端版本至少要2.6以上吧
  • 還有一個注意問題——Visual SVN Server的權限,否則可能會出現下列錯誤:

    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 服務 右鍵屬性 登陸面闆 設定桌面互動或者管理者權限再試