下載 svn server/client (svn-win32-1.4.6.zip / Subversion 1.4.6 Win32 binaries for Apache 2.2.x.)
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91
2.
解壓縮。範例目錄 c:\svn-win32-1.4.6
3.
將 c:\svn-win32-1.4.6\bin 加至 PATH 變數
4.
建立 APR_ICONV_PATH 變數, 內容為 c:\svn-win32-1.4.6\iconv
Note
這個環境變數 svn client 用來尋找 I18N 字串的位置
5.
使用 svnadmin 建立檔案庫
1.
建立一個目錄用來集中放置 SVN 檔案庫
mkdir c:\svn_repos
2.
建立一個 svn 檔案庫 。請在目錄 c:svn_repos 之下執行此命令:
svnadmin create HelloProject
Note
如果您無法使用 svnadmin 指令,請檢查是否已將 SVN Client 安裝路徑下的 bin 目錄附加至 PATH 環境變數中。若您確定已經加入,那麼試著重開一個命令視窗後,再次執行指令。
HelloProject 您可以使用任何您想要作為檔案庫的名稱
6.
建立 svn 帳號
Tip
如果的目標是使用 Apache Httpd + SVN 的組合,這一步可以略過。因為 Apache 管理帳號的清單可以不使用 SVN 檔案庫內的清單。
一個 SVN 檔案庫的結構如下:
C:\svn_repos>tree
列出資料夾 PATH
磁碟區序列號碼為 000007C0 08A8:9415
C:.
└─fooo
├─conf
├─dav
├─db
│ ├─revprops
│ ├─revs
│ └─transactions
├─hooks
└─locks
您將會進入 conf 目錄,修改相關檔案。
1.
修改檔案 svnserve.conf (這是 svn 內建 server 所使用的 config 檔) 取消以下三行的註解
anon-access = none
auth-access = write
password-db = passwd
Tip
anon-access 原先為 read,意思是不認識也能讀取。我們將它設為 none 就需要通過認證才能讀取。
1.
修改 passwd 檔,新增使用者
username = userpassword
2.
啟用 svn server
C:\>svnserve -d -r c:\svn_repos
3.
使用 svn 指令測試連線
C:\Documents and Settings\Administrator>svn info svn://localhost/fooo/
認證領域:
'Administrator' 的密碼:
認證領域:
使用者名稱: qrtt1
'qrtt1' 的密碼: ****
路徑: fooo
URL: svn://localhost/fooo
檔案庫根目錄: svn://localhost/fooo
檔案庫 UUID: 29081c60-970c-af41-849c-6e50809ef675
修訂版: 7
節點種類: 目錄
最後更新作者: qrtt1
最後修改修訂版: 7
最後修改日期: 2008-06-23 23:37:45 +0800 (星期一, 23 六月 2008)
Tip
當您沒有指定使用者時,它會以您登入系統的帳號當作您將要登入 SVN 的帳號。您可以使用參數 --username
C:\>svn info svn://localhost/fooo --username qrtt1
如果您的防火牆沒有擋住 port 3690 那麼您可以耐 localhost 換成對外的 ip 直接連線測試。
7.
將 svn 建立為 windows service
Note
svnserve 雖然有提供啟動為 windows service 的選項,不過使用起來不如真的安裝為 windows servier 方便。因此我們使用其他的工具將 svn 安裝成為 windows service。
下載並安裝 http://svnservice.tigris.org/files/documents/2717/36986/SVNServiceSetup-0.5.2.msi
安裝完畢後, 由[開始功能表]->[SVNServiceAdmin]開啟設定程式設定 SVN Binary Path 為 c:\svn-win32-1.4.6\bin 設定 Repository Path 為 c:\svn_repos
8.
複製 Apache Httpd 需要的檔案 (如果有相同的檔案, 請備份舊的使用 svn 內附檔案)
將 下列檔案由 c:\svn-win32-1.4.6\bin 複製到 apache 2.2.x 的 modules 目錄
* mod_authz_svn
* mod_dav_svn
將 下列檔案由 c:\svn-win32-1.4.6\bin 複製到 apache 2.2.x 的 bin 目錄
* intl3_svn.dll
* libdb44.dll
9.
修改 apache conf目錄的 http.conf 載入 svn 需要的模組
在 shared object 載入區 加入下列二行
* LoadModule dav_svn_module modules/mod_dav_svn.so
* LoadModule authz_svn_module modules/mod_authz_svn.so
取消 mod_dav 的註解
* LoadModule dav_module modules/mod_dav.so
10.
在 http.conf 檔最下方建立一個
DAV svn
SVNParentPath c:/svn_repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile conf/svn-password.pass
AuthzSVNAccessFile conf/svn-authz.conf
Require valid-user
Note
請注意路徑的部分,我們填寫的是 c:/svn_repos 而非 c:\svn_repos
11.
在 Apache 的 conf 目錄建立 svn-password.pass
htpasswd -cm c:\[your apache path]\conf\svn-password.pass [your id]
Note
htpasswd 在 Apache Httpd 的 bin 目錄內,它是用來建立使用者帳號檔的小工具。參數 c 是指新建一個檔案;參數 m 是指使用 md5 編碼。
12.
Apache 的 conf 目錄建立 svn-authz.conf
參考: http://davidwinter.me.uk/articles/2006/03/03/access-control-for-subversion-with-apache2-and-authz
[groups]
dev = qrtt1
[/]
@dev = rw
13.
由 http://localhost/svn/your_project 測試
No comments:
Post a Comment