Windows安裝配置Subversion

由於公司需要建立源碼版本庫,最近一段時間一直和SVN打交道,在配置使用過程中,覺得有一些問題有必要記錄下來,防止忘記。

根據大多數網友的推薦,我選擇了Apache+Subversion+Tortoise這種模式,爲了簡便起見,我選擇了Apache2.2+Subversion1.5.6的集成版本CollabNetSubversion-server-1.5.6-2.win32.exe,這應該是一個比較穩定版本搭配。

 安裝過程也很簡單,只有在一處需要配置的地方注意一下:

 

兩個都勾選

 

svnserve的配置,因爲我們不使用該方式,所以配置可以略過。

 

Apache的配置,Host Port是需要設置一個端口(80端口一般是不能用的),而且不能和別的服務使用的端口衝突,不然Apache的服務就啓動不起來;Repository Path是版本庫的路徑,一般我們會設爲D:/SVN。 

 

其他的一般不管,接着就默認下一步,直到安裝完成。

 

現在可以開始創建版本庫了,打開命令行窗口(DOS窗口),進入d:/svn目錄輸入

      svnadmin create --fs-type fsfs proj1

完成後就在d:/svn/proj1創建了一個新的版本庫

 

然後到Subversion的安裝目錄下修改Apache的配置文件(通常是C:/Program Files/SubversionServer/httpd/conf/httpd.conf),做出如下修改:

去掉以下幾行的註釋(刪除 '#'標記):

#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so

 再將以下兩行添加到 LoadModule 節的末尾:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

在最後面有如下幾行:

<Location /svn>
   DAV svn
   SVNParentPath d:/SVN
</Location>


修改爲:

<Location /svn/>
  DAV svn
  SVNListParentPath on
  SVNParentPath D:/SVN
  #SVNIndexXSLT "/svnindex.xsl"
  AuthType Basic
  AuthName "Fujin Teleway's repositories"
  AuthUserFile D:/SVN/passwd
  AuthzSVNAccessFile D:/SVN/svnaccessfile
  Require valid-user
  SVNAutoversioning on
  ModMimeUsePathInfo on
</Location>

 

httpd.conf最後Location參數說明

 

 注意:爲什麼在<Location /svn/>後面多加個“/”呢?如果不多加“/”,那麼在IE輸入URL: http://MyServer/svn/就訪問不了svn的根目錄,但是如果多加上“/”,在IE輸入URL: http://MyServer/svn/ 就可以訪問svn的根目錄了。記住是輸入URL: http://MyServer/svn/ 不是http://MyServer/svn,不然也訪問不了svn的根目錄。但是這個方法在TSVN中訪問版本庫時不適用,一定要加版本庫名,例如http://MyServer/svn/proj1

 

有了上面的修改,當然得建立兩個重要的文件:passwd和svnaccessfile

創建passwd文件:打開命令行提示符(DOS窗口),進入CollabNetSubversion的安裝目錄中Apache的bin目錄(我這裏是C:/Program Files/SubversionServer/httpd/bin),通過輸入下面的命令創建文件

         htpasswd -c d:/svn/passwd <username>

它將會創建名爲passwd的文件用於認證。用下面的命令增加其它用戶

         htpasswd d:/svn/passwd <username>

 

創建svnaccessfile文件:在d:/svn目錄下新建一個txt文本文件,錄入以下內容:

[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
dangerman =
# Allow developers complete access to their project repos
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# Give the doc people write access to all the docs folders
[/trunk/doc]
@docs = rw
# Give trainees write access in the training repository only
[TrainingRepos:/]
@training = rw
然後把該txt文件改名爲svnaccessfile,不需要擴展名。
現在可以在IE上輸入http://IP:port/svn/訪問根目錄。
在TSVN客戶端上輸入http://IP:port/svn/Project訪問你所建的項目了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章