2013年8月14日 星期三

[研究] Win32Svn 1.8.0-1 Apache SubVersion Server 架設(Windows 2008 R2)

[研究] Win32Svn 1.8.0-1   SVN Server 架設(Windows 2008 R2)

2013-08-14

下載網址

Win32Svn 1.8.0-1  (SVN Server)
http://subversion.apache.org/packages.html
檔案:Setup-Subversion-1.8.0-1.msi (只有 32 位元版本)

TortoiseSVN 1.8.1 (SVN Client)
http://tortoisesvn.net/downloads.html
x64 檔案:TortoiseSVN-1.8.1.24570-x64-svn-1.8.1.msi

Windows Installer 4.5 Redistributable - 繁體中文
http://www.microsoft.com/zh-tw/download/details.aspx?id=8483
PS:TortoiseSVN 1.8.1 需要 Windows Installer 4.5

安裝

(下圖)執行 Setup-Subversion-1.8.0-1.msi,安裝 Win32Svn 1.8.0-1  (SVN Server)

(下圖)執行 TortoiseSVN-1.8.1.24570-x64-svn-1.8.1.msi,安裝 TortoiseSVN 1.8.1 (SVN Client)
這不是必需的,但是後面操作較方便

(下圖) 準備將 SVN Service 加入 Windows 的「服務」
 在「開始/所有程式/附屬應用程式/命令提示字元」上按下滑鼠右鍵,以「系統管理員權限」開啟「命令提示字元」

(下圖) 執行
sc create "svnservice" binpath= "C:\Program Files (x86)\Subversion\bin\svnserve.exe --service --listen-host 0.0.0.0 -r C:\repos" displayname= "Win32Svn" depend= Tcpip start= auto
將 SVN Service 加入 Windows 的「服務」

或其他你想要的設定
sc create "svnservice" binpath= "C:\Program Files (x86)\Subversion\bin\svnserve.exe --service --listen-host 0.0.0.0 -r D:\Repositories" displayname= "Win32Svn - Apache SubVersion Server" depend= Tcpip start= auto

若要停止
sc  stop "svnservice"

若要刪除
sc  delete "svnservice"
(下圖) 建立 C:\Repos 目錄 (和前一步驟設定的目錄要相同)
執行 sc start "svnservice" 啟動 SVN Server

(下圖) 假設有一個系統開發案,裡面包含好幾個方案 (solution,每個方案有幾個 專案 project ),建立一個稱為 Plan01 的目錄來放所有資料

在 Plan01 目錄上按下滑鼠右鍵,選 TortoiseSVN 的 Create repository here 選項,建立檔案庫 (repository)



(下圖) 按下 Start Repobrowser 可以看目前建立的狀況

(下圖) 設定存取權限,請修改 C:\repos\Plan01\conf\svnserve.conf 檔案
anon-access 表示 anonymous access,設定為 none 表示沒有帳號者不能存取
auth-access 表示有權限最多可以 write
password-db 表示 使用者帳號、密碼設定檔案名稱為 passwd
authz-db = authz 表示讀寫權限在 authz 檔案中設定 (也可不設定)


(下圖) 帳號 lu 的密碼為 1234

上面只修改 svnserve.conf 和 passwd 兩個設定檔,設定檔 authz 可以設定每個帳號是唯讀,或可讀寫,此處不使用也不設定


(下圖) Windows 2008 R2 設定開放 SVN Server 可以通過防火牆





(下圖) 把每個方案逐一丟到 SVN Server
在方案 WindowsFormsApplication1 上按下滑鼠右鍵,選 TortoiseSVN 的 Import

(下圖) 輸入 svn://192.168.128.130/Plan01/trunk/WindowsFormsApplication1

(下圖)輸入帳號密碼

同理,依序把其他目錄丟入

(下圖) 檢視一下上傳結果
在空處按下滑鼠右鍵,選 TortoiseSVN 的 Repo-browser

(下圖) 輸入 svn://192.168.128.130/Plan01/trunk

(下圖) 顯示目前情況

(下圖) 假設有別人需要共享資料,請先安裝 SVN Client (假設安裝 TortoiseSVN 1.8.1),在空處按下滑鼠右鍵,選 SVN Checkout

(下圖) 設定要從 SVN Server 匯出的目錄,下載到自己電腦哪個目錄

(下圖) 匯出完成

(下圖) 最後的結果

以後要下載新版 (例如 WebSite1),請在 WebSite1 上按下滑鼠右鍵,選 SVN Update 就可以更新自己的檔案 (只會下載比自己新的檔案)

如果要上傳新版 (例如 WebSite1),請在 WebSite1 上按下滑鼠右鍵,選 SVN Commit 就可以上傳自己的 "更新過的檔案" (沒修改過的不會上傳)

sc delete "svnservice"  可以刪除服務

********************************************************************************

假設 Repositories 在 D:\Repositories,手動指令建立目錄方法為:

1.先在 D:\Repositories 建立你要的專案名稱資料夾 ex: xxx

2.在 D:\Repositories 路徑下輸入指令 "svnadmin create --compatible-version 1.6   xxx"
xxx 為目錄名稱

3.複製別的專案的 svnserve.conf  和 passwd 覆蓋檔案至新建立目錄的conf資料夾內。

(完)


11 則留言:

  1. 回覆
    1. 教學很詳細,可是可以問嗎?win 7 的架設也一樣嗎?
      我好像卡在防火牆那裡,import 時會出現
      Error: Unable to connect to a repository at URL
      Error: Error while parsing config file: C:\repos\Plan01\conf\svnserve.conf:
      Error: line 19: Option expected
      看一下19行,是 anon-access = none
      不知道筆者能幫的上忙嗎?先感謝回答。 ^^

      刪除
    2. 根據錯誤訊息,疑似設定檔 svnserve.conf 內容有問題

      刪除
  2. 請問有需要事先安裝apache嗎?還有怎樣設定svn的IP?
    謝謝。

    回覆刪除
    回覆
    1. 不需要安裝apache Web Server;不需要設定IP

      刪除
  3. 你好,我照你上面的方式設定後在其他台電腦上要取得主機上的檔案時,在URL打上
    主機的IP及資料夾目錄會出現下方錯誤 請問是那邊設定上有問題?
    Error: Unable to connect to a repository at URL 'svn://ServerIP/svn/XXX'
    Error: No repository found in 'svn://ServerIP/svn/XXX'
    謝謝指導!

    回覆刪除
    回覆
    1. >svn://ServerIP/svn/XXX'
      你的 C:\repos 有 svn 子目錄 ?

      刪除
    2. 你好,我一樣在c:\repos\下建了一個Plan01的資料夾,在你的步驟
      (下圖) 輸入 svn://192.168.128.130/Plan01/trunk/WindowsFormsApplication1 <--這段我是打svn://192.168.0.10/Plan01 or
      svn://localhost/Plan01 就出現了上面2個錯誤
      請問我想要從別台電腦也能連進來本機端不需要特別的設定?我的環境是win7.

      刪除
    3. 你好,有的!我在上面 IMPORT
      (下圖) 輸入 svn://192.168.128.130/Plan01/trunk/WindowsFormsApplication1 <-這段要輸入自已的本機IP svn://192.168.128.130/Plan01/TEST 就沒辦法了

      刪除
  4. 你好
    你好,我照你上面的方式設定後, 在其他台電腦要import 時出現以下的error message
    Unable to connect to a repository at URL
    'svn://ServerIP/plan01/trunk/project01'
    Can't connect to host 'ServerIP':
    連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。


    回覆刪除