1. 程式人生 > >配置本地SVN伺服器簡明步驟詳解

配置本地SVN伺服器簡明步驟詳解

本文和大家一起學習一下如何配置本地SVN伺服器,主要包括資料倉庫建立和Apache設計及SVN使用等內容,在這裡和大家分享一下,希望大家共同進步。

本節和大家討論一下如何配置本地SVN伺服器大家對於Linux和Windows下SVN伺服器的配置相信都不陌生了,那麼怎樣配置本地SVN伺服器呢,請看本節介紹。
使用SVN已經四年,變得開發專案離不開“她”了,非常方便。我喜歡用她管理自己的軟體程式碼,各種工具,各種重要文件,這使我的開發工作變得非常輕鬆而有條理,以前使用的是美國的商用的wush.net,現在老闆想在本地配置SVN,花了一點時間,基本配置完成,希望以後大家和我自己不要走彎路。我選擇的軟體是apache+subversion+TortoiseSVN。
1)apache主要是把你電腦配置成一個伺服器,提供URL,設定各個使用者資訊,以及加入SVN。
推薦使用:http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.0.63-win32-x86-no_ssl.msi,記得設定一下的skype,不要佔用80埠,其他的就沒什麼了,安裝一直點選“Next”就ok了。
2)subversion建立SVN倉庫,設定使用者以及許可權
推薦使用:http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe
3)TortoiseSVN客戶端,隨便下載個就可以。
首先設定你電腦的固定IP,我設定為“192.168.1.239”,其次準備一個比較乾淨的比較的硬碟,就可以配置了。
1)建立一個數據倉庫
配置本地SVN伺服器過程中需要建立一個數據倉庫。前面安裝的subversion已經生成環境變數,所以bin下的.exe可以在DOS命令下直接執行。先建立E:\svn\MyProject,然後命令列敲入:svnadmincreateE:\svn\MyProject,如果執行成功的話,什麼也沒有輸出,這個時候,我們再來到MyProject資料夾下面,我們會發現多了幾個資料夾和檔案,我們開啟conf資料夾,然後再開啟svnserve.conf檔案,找到如下行#password-db=passwd,然後把它前面的#去掉,表示MyProject是需要密碼驗證的.但是我們密碼設在哪裡呢,這個時候我們再開啟conf資料夾下面的passwd檔案,用文字編輯器開啟,在[users]下面加上我們需要啟動的人員的使用者和密碼,比如
[users]
hadeslee=hadeslee1234
tom=123456
這個的話,我們就啟動了兩個使用者,一個叫hadeslee,密碼是hadeslee1234,一個叫tom,密碼是123456.然後我們儲存passwd檔案.然後,我們再建一個檔案,叫access.auth,這個檔案是設定訪問許可權的,裡面內容如下:
[MyProject:/]
hadeslee=rw
[MyProject:/module1]
tom=rw
hadeslee=rw
這表示,MyProject下面的所有子目錄hadeslee都是有許可權讀寫的,但是tom只有許可權讀寫此專案下面的module1目錄,這個各自的訪問許可權就分的更細緻了.有關於MyProject資料夾下面的設定,我們就告一段落了。
2)我們現在開始設定apache,使它能和subvertion一起工作。
配置本地SVN伺服器中設定Apache。首先來到Subersion的安裝目錄,進入它的bin目錄,我們會發現如下兩個檔案:
mod_authz_svn.so
mod_dav_svn.so
我們把這兩個檔案複製一下,粘帖到apache的安裝目錄下的modules檔案中,然後我們再開啟apache安裝目錄下的conf資料夾,開啟httpd.conf檔案.增加如下兩行:
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
把指向具體地址的相同兩行註釋掉,#為註釋。
注意,由於dav_svn需要dav_module的支援,所以要確保下面這一行沒有被註釋,並且保證在dav_svn之前載入:
LoadModuledav_modulemodules/mod_dav.so
然後模組的設定就完成了,下面我們要設定SVN的目錄,以使我們的apache能知道訪問不同的URL的時候,它去哪裡尋找這個URL所對應的SVN目錄.
在httpd.conf檔案中,增加如下內容:
 

  1. <Location/svn/MyProject>
  2. DAVsvn  
  3. SVNPathE:/svn/MyProject  
  4. AuthzSVNAccessFileE:/svn/MyProject/conf/access.auth  
  5. SatisfyAny  
  6. Requirevalid-user  
  7. AuthTypeBasic  
  8. AuthName"Subversionrepositories"  
  9. AuthUserFileE:/svn/MyProject/conf/users.auth  
  10. Requirevalid-user  
  11. </Location>

此處注意反斜槓方向!新增完上面這些,我們會發現access.auth是我們剛才新建的,現在我們就來生成users.auth檔案.進入apache的安裝目錄的bin資料夾,輸入如下命令:
D:\ProgramFiles\ApacheGroup\Apache2\bin>htpasswd-cbusers.authhadesleehadeslee1234
AutomaticallyusingMD5format.
Addingpasswordforuserhadeslee
D:\ProgramFiles\ApacheGroup\Apache2\bin>
我們就會發現在bin目錄生成了users.auth,我們可以看到,hadeslee使用者名稱已經被新增進去了,密碼是用MD5加密過的.然後我們還要增加使用者呢,可以用如下方法:
D:\ProgramFiles\ApacheGroup\Apache2\bin>htpasswd-busers.authtom123456
AutomaticallyusingMD5format.
Addingpasswordforusertom
D:\ProgramFiles\ApacheGroup\Apache2\bin>
只是在生成密碼的時候,小了一個c的引數,因為c表示重新生成一個這樣的檔案,我們第一次的時候是要加的,後面我們要新增使用者的時候,就不用這個c了.然後開啟users.auth,會發現兩個使用者都已經在裡面了,這個時候,我們把users.auth移到E:/svn/MyProject/conf/裡面去,使我們上面的設定生效.
3)使用SVN
配置本地SVN伺服器過程中如何使用SVN。我們的設定就完成了,重啟一下。可以在瀏覽器裡面輸入http://localhost/svn/MyProject(http://192.168.1.239/svn/MyProject)試試看,其他同事也可以看看。使用TortoiseSVN就可以checkin和checkout。
如果以後我們還要加入其它的專案呢,可以有兩點解決方式
1,把以後的專案也匯入到我們的MyProject的倉庫中,這個的話,就不用改什麼配置了
2,新建一個數據倉庫,然後只要按上面的步驟,把新的<Location...>設定放到httpd.conf裡面就可以了.
當然,驗證檔案,訪問許可權檔案,還有訪問SVN的密碼都要自己按上面的方法再設一遍.
注意:
1)skype佔用80埠
2)卡巴斯基,把subversion帶烏龜的二個.exe設定為信任程式,四個選項全部勾上
3)有些東西只是一個基本的概念,也參考的其他同仁的文件,不清楚的上他們網站,或者google一下。本地SVN伺服器介紹完畢,請關注本節其他相關報道。