melody

          成為最優(yōu)秀的自己
          數(shù)據(jù)加載中……
          轉(zhuǎn) svn

          安裝

          一、             獲取資源

          (1)       apache Http Server 2.0.55 。  用于和 SVN 整合

          (2)       svn-1.3.2-setup.exe    SVN 服務(wù)器端

          (3)       TortoiseSVN-1.3.2.5840-svn-1.3.0.msi   SVN 的客戶端

          (4)       LanguagePack_1.3.2_zh_CN.exe    tortoise 的語言包

          (5)       SVNService.zip    SVN 的一個第三方工具,將 SVN 用做 windows 后臺服務(wù)

          二、             安裝

          上面的 1 、 2 、 3 、 4 均為直接安裝即可,注意在安裝完 3 再安裝四的時候要重啟一下,然后將 5 解壓到 2 中安裝目錄下的 bin 目錄中。至此安裝完畢

          三、             配置

          沒什么好特別配置的。基本上安裝好了就可以使用,使用方式是用 3 的客戶端工具選擇一個空的文件夾右鍵 ---- à 在此創(chuàng)建文件庫。一個 SVN 的倉庫文件就創(chuàng)建完畢。因?yàn)橐紤]到后面的 apache 的整合所以建議名字不要太專一性,然后轉(zhuǎn)到項(xiàng)目或者你想加入版本控制的文件或者文件夾上面,點(diǎn)右鍵選擇導(dǎo)入,在彈出的對話框里面輸入倉庫地址,執(zhí)行導(dǎo)入完 畢后一個完整的文件版本誕生了。

          注意:在導(dǎo)入時 3 中的客戶端默認(rèn)是導(dǎo)入當(dāng)前文件夾的子文件夾,所以如果你想將當(dāng)前目錄也導(dǎo)入的話,請將他放入一個文件夾內(nèi)再執(zhí)行導(dǎo)入操作。

          然后是倉庫的配置:轉(zhuǎn)到倉庫目錄的 conf 中,尋找 svnserve.conf 文件并將其中的

          [general]

          anon-access = read

          auth-access = write

          password-db = passwd

          realm = My First Repository

          前面的 # 號去掉,然后去掉他前面的空格。保存。

          這里的意思是: anon-access 指 匿名訪問的權(quán)限,可以是 read,write,none, 默認(rèn)為 read

          auth-access 指 認(rèn)證用戶的權(quán)限,可以是 read,write,none, 默認(rèn)為 write

          password-db 指 密碼數(shù)據(jù)庫的路徑,去掉前面的,存的是認(rèn)證用戶的用戶名和密碼, username=passwd

          然后是修改 passwd 文件

          1. 去掉 [users] 前面的 #, 否則 svn 只能以匿名用戶登錄,客戶端不會出現(xiàn)登錄窗口,除非你的 anon 不為 none, 否則將返回一個錯誤。

          2. 添加用戶名和密碼  username=password

          四、        啟動 SVN 服務(wù)器

          對于單個代碼倉庫

          啟動命令   svnserve -d -r /home/svnrepo --listen-host 192.168.100.200

          其中 -d 表示在后臺運(yùn)行, -r 指定服務(wù)器的根目錄,這樣訪問服務(wù)器時就可以直接用 svn:// 服務(wù)器 ip 來訪問了。如果服務(wù)器有多 ip 的話 --listen-host 來指定監(jiān)聽的 ip 地址 .

          我們可以在 svn 客戶端中通過 svn://192.168.100.200 來訪問 svn 服務(wù)器

          對于多個代碼倉庫 , 我們在啟動時也可以用 -r 選項(xiàng)來指定服務(wù)器根目錄 , 但訪問時需要寫上每個倉庫相對于 svn 根目錄的相對路徑 .

          比如 , 我們有兩個代碼倉庫 /home/repoa 和 /home/repob, 我們用 svnserve -d -r /home --listen-host 192.168.100.200 來啟動 , 那么在客戶端訪問時可以用 svn://192.168.100.200/repoa 和 svn://192.168.1.200/repob 來分別訪問兩個項(xiàng)目

          啟動完成以后 , 我們可以用 ps aux|grep svnserv 來查看是否存在 svnserve 進(jìn)程 .

          五、        開放服務(wù)器端口

          svn 默認(rèn)端口是 3690 ,你需要在防火墻上開放這個端口。

          也可以通過 svnserve 的 --listen-port 選項(xiàng)來指定一個已經(jīng)開放的其他端口 , 不過這樣的話客戶端使用也必須家上端口 , 如 svn://192.168.100.200:9999/ 。

          六、        與 apache 的整合

          各種存取 repository 的方法

          SVN 設(shè)計(jì)時已經(jīng)把 repository 的存取抽象化了,所以理論上,只要是可以進(jìn)行資料傳送的方法或通訊協(xié)定,就可以用來存取 repository。

          實(shí)際上,SVN 目前能支援的存取方法還是有限的,不過也比它的前輩 CVS 多了一些,而且未來還可以繼續(xù)擴(kuò)充。 SVN 存取 repository 的方法要在 URL 的通訊協(xié)定部分指定,可以有:

          file:///

          直接存取本地檔案系統(tǒng)裡的 repository。

          http://

          透過支援 SVN 的 Apache 伺服器 (以 module 的形式),以 WebDAV 存取

          https://

          一樣是用 WebDAV,但加上 SSL

          svn://

          以自訂的通訊協(xié)定,連接 svnserve 來存取 repository

          svn+ssh://

          和 svn:// 一樣,但透過 ssh 協(xié)定作 tunnel

           

          另一種比較常用的使用SVN的方式是將其與apache整合。通過http協(xié)議來訪問代碼,通過web界面來瀏覽察看,通過http服務(wù)器的安全控制來進(jìn)行權(quán)限認(rèn)證。

          安裝要點(diǎn)記錄如下:

          0 假設(shè)安裝Apache至D:\Apache2

          1 復(fù)制%SVN_HOME%\bin\libdb42.dll、libeay32.dll、以及 ssleay32.dll到%APACHE_HOME%\bin

          2 復(fù)制%SVN_HOME%\httpd\*.so到%APACHE_HOME%\modules

          3 修改%APACHE_HOME%\conf\httpd.conf,增加或修改:

              LoadModule dav_module modules/mod_dav.so

              LoadModule dav_fs_module modules/mod_dav_fs.so

              LoadModule dav_svn_module modules/mod_dav_svn.so

              LoadModule authz_svn_module modules/mod_authz_svn.so 

          4 在<VirtualHost>中增加/svn的<Location>

              <Location /svnserver>

          DAV svn

          SVNPath D:/SVNDIR/taowap

          </Location>

          5 重起apache,通過瀏覽器訪http://localhost/svnserver可看到Subversion的信息。 

          在訪問控制的方面,可以采用windows域用戶身份驗(yàn)證。此處也可以用mysql,passwd文件,LDAP等其他任何Apache支持的驗(yàn)證方式。

          此處我采用文件方式,首先建立一個保存密碼的文件,如果不需要對密碼加密,可增加-p參數(shù)生成plain text。

          %APACHE_HOME%\bin\htpasswd –c -p d:\passwd\passwords user1

          生成的文件內(nèi)容如下:

              # 格式username:password

              user1:123456

          如果要按照Group的方式來控制權(quán)限,可同時建立一個groups文件,內(nèi)容如下:

              # 格式:GroupName: username1 username2

              svngroup: user1 user2

          在httpd.conf中的/svnserver處增加權(quán)限控制部分:

              <Location /svnserver>

              DAV svn

              # 指向SVN Repository的ROOT

              SVNPath d:/svnrepo

             

              AuthType Basic

              AuthName "Subversion Repository"

              AuthUserFile d:/passwd/passwords

              AuthGroupFile d:/passwd/groups

              Require group svngroup

              </Location>

          重起服務(wù)器,瀏覽http://localhost/svnserver,出現(xiàn)安全對話框,輸入用戶名密碼即可成功。 

          七: 附: svnserve [ 選項(xiàng) ]
          有效選項(xiàng):
           -d [--daemon]            : 后臺模式
           --listen-port arg        : 監(jiān)聽端口(后臺模式)
           --listen-host arg        : 監(jiān)聽主機(jī)名或 IP 地址(后臺模式)
           --foreground             : 在前臺運(yùn)行(調(diào)試時有用)
           -h [--help]              : 顯示這個幫助
           --version                : 顯示版本信息
           -i [--inetd]             : inetd 模式
           -r [--root] arg          : 服務(wù)根目錄
           -R [--read-only]         : 不贊成;使用檔案庫配置文件
           -t [--tunnel]            : 隧道模式
           --tunnel-user arg        : 隧道用戶名(模式是當(dāng)前用戶 UID 的名字)
           -T [--threads]           : 使用線程代替進(jìn)程
           -X [--listen-once]       : 監(jiān)聽一次(調(diào)試時有用)

          posted on 2008-03-12 22:18 meilody 閱讀(121) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大名县| 武义县| 开封市| 阳谷县| 杭锦后旗| 美姑县| 祁阳县| 青神县| 察雅县| 井研县| 横山县| 革吉县| 敖汉旗| 康保县| 濉溪县| 镇原县| 长宁县| 百色市| 同江市| 安多县| 北安市| 德州市| 亚东县| 南和县| 兴隆县| 长岛县| 犍为县| 壤塘县| 平谷区| 漠河县| 屏南县| 大新县| 禹州市| 岗巴县| 崇左市| 莱西市| 连江县| 开封县| 长治市| 错那县| 鄱阳县|