第一部分 安装apache和svn,把svn注册到apache
1 安装apache服务器 apache_2.0.55-win32-x86-no_ssl.msi
# 安装后通过http://localhost 访问。可能出现无法访问的问题;把本机的无线网卡禁用或防火墙禁用
重试一把可能就可以了。如果还不行,就把你的本地链接再禁用后启用就可以了(当时我本地有双网卡,但无线网卡启用而没有连接上)
2 安装svn svn-1.2.3-setup.exe
3 把 $SVN_Install/bin/目錄下的 mod_dav_svn.so、 mod_authz_svn.so複製到 $Apache2_Install/modules/目錄下。
4 把 $SVN_Install/bin/目錄下的ssleay32.dll,libeay32.dll,libdb43.dll文件製到 $Apache2_Install/bin/下
5 修改Apache HTTP Server 的 httpd.conf(在 /conf/ 目錄下),尋找一堆 LoadModule 指令,先找到以下兩行:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
把前面'#' 字元刪除,然後把下面幾行文字加到這群 LoadModule 指令的後面:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
6 重启APACHE
第二部分 建立svn的相关repository path 分为两个
A:
SVNPath
SVNPath 適合用來個別指定檔案庫的路徑,語法是:
<location repos_name="" svn=""></location>
DAV svn
SVNPath /absolute/path/to/repository
其中 "/svn/repos_name" 就是用戶端存取特定檔案庫的 URI(Uniform Resource Indentifier),SVNPath 後面指定的路徑則是檔案庫的絕對路徑,假設我們的檔案庫實際存放的路徑是 d:\svn\MyProject,並且希望用戶端使用 http://myserver/svn/myprj 的 URL 來存取檔案庫,那麼要加入 httpd.conf 的內容就是:
<location svn="" myprj=""></location>
DAV svn
SVNPath d:\svn\MyProject
注意 Location 標籤後面的 /svn/myprj 的第一個斜線不可少!
B:
SVNParentPath
如果你的檔案庫都集中放在某個目錄之下,例如:d:\svn,那你就可以使用 SVNParentPath 的方式指定檔案庫的根路徑,例如:
<location svn=""></location>
DAV svn
SVNParentPath d:\svn
這表示可以讓任何人都可以透過 http://myserver/svn/<檔案庫名稱> 的方式,存取位於 d:\svn 這個目錄以下的所有檔案庫。也就是說,這個設定動作只需要一次,如果使用 SVNPath,你必須為各個檔案庫分別指定對應的路徑。
以上兩種設定方式都可以,方便起見,這裡我用 SVNParentPath 來統一指定所有檔案庫的父層 URL 路徑。
將 的設定加到 Apache HTTP Server 的 httpd.conf 檔尾就行了。接著便可以開始建立檔案庫。
第三部分 建立svn的repository 档案库
假設我們要把所有的檔案庫都放在 d:\svn 目錄下,現在要建立一個測試用的檔案庫,名稱叫做 repository,指令為:
md d:\svn
svnadmin create d:\svn\repository
命令執行完後,檢查看看 d:\svn\repository 目錄底下產生了哪些目錄和檔案。
--本机访问 http://localhost/svn/repository 看看你的结果
第四部分 汇入专案 即在repository中建立相关的repository子目录
先在本地建立相关目录,然后import到svn上
在cmd模式下
c:\
md temp -->创建temp目录
cd\temp -->进入temp目录
md ProjectA md ProjectA\trunk md ProjectA\branches md ProjectA\tags svn import http://localhost/svn -m "Initial repository layout" -->创建子目录,并且import到svn
-->通过http://localhost/svn/repository/ProjecrA 来看看你的结果
PS
如果你再匯入其他專案,例如 ProjectB,那麼整個檔案庫的結構會變成這樣:
/svn/repository/
+-- ProjectA/
+-- ProjectB/
也就是說 repository 這個檔案庫裡面包含了兩個專案。
如果你希望為每個專案建立一個檔案庫,那麼在 2.4 節中建立檔案庫的指令就變成:
md d:\svn
svnadmin create d:\svn\ProjectA
svnadmin create d:\svn\ProjectB
這樣就變成有兩個檔案庫了,檔案庫名稱分別是 ProjectA 與 ProjectB。
提示
如果專案之間有共享的檔案,建議把這些相關的專案放進同一個檔案庫;如果專案之間彼此毫無關係,那就採用一個檔案庫放一個專案的方式,這種方式等於專案就是檔案庫。
第一種方式有個比較奇怪的「功能」你應該要知道,就是一個專案的 check in 動作,也會令其他專案的檔案的修訂版次遞增 ,如果這不是你想要的,請選擇第二種方式,即一個檔案庫只存放一個專案。
這裡補充說明一下 ProjectA 的目錄結構。在 ProjectA 專案的根目錄下建立的 trunk、branches、和 tags 這三個目錄是有特別意義的,它們的作用分別是:
trunk 目錄用來存份目前專案正在進行開發的程式檔案和文件(又稱為主線,即 mainline);
branches 用來存放主線的各個仍在發展中的分支;
tags 則用來存放已經不再變動的分支,也就是其中的檔案不會再修改了。
這是 Subverion 官方手冊建議的目錄結構安排方式,你可以自己決定要不要用這種配置方式,詳細說明請參考官方手冊的第五章,子標題為 "Choosing a Repository Layout"。
提示
目錄名稱建議盡量不要用中文名稱,這樣在使用命令列時比較方便,也比較不會有問題。
第五部分 建立相关访问权限--》这部分待补充
第六部分 在客户端安装TortoiseSVN客户端 进行checkout和update