A Cooly Weblog

             ::  ::  ::  ::  :: 管理

          ?

          ?

          SVN-WINDOWS 服務(wù)器架設(shè)和管理

          ?

          ?

          1. ?? 環(huán)境和軟件準(zhǔn)備

          ?

          操作系統(tǒng): windowsXP sp2

          Window-Subvsersion http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

          Windows 常用客戶端 TortoiseSVN http://tortoisesvn.net/downloads

          ?

          請下載 subversion 服務(wù)器軟件和客戶端,并默認(rèn)安裝(可以重新啟動操作系統(tǒng),以更新圖標(biāo)顯示)。

          2. ?? 配置管理

          2.1. 創(chuàng)建倉庫 (svnadmin)

          在硬盤上創(chuàng)建個空目錄,作為 SVN 的倉庫目錄。如: E:\subversion\repository 。下面使用兩種方式創(chuàng)建倉庫的初時文件結(jié)構(gòu)和存儲方式。命令方式和 TortoiseSVN 客戶端方式,后面所有文檔都采用兩種方式說明,其功能完全相同。請根據(jù)實(shí)際情況選擇使用。

          ?

          命令方式( DOS 下):

          # 默認(rèn)方式,采用 FSFS 方式存儲數(shù)據(jù),這是推薦方式,管理和遷移相對 bdb 方式簡單

          svnadmin create E:\subversion\repository

          svnadmin create –fs-type bdb E:\subversion\repository

          ?

          TortoiseSVN 客戶端

          ?

          注意在最新版本的 SVN1.4 ,采用本方式有兼容性問題,該客戶端現(xiàn)在好想只支持 1.3 版本的 SVN 創(chuàng)建倉庫

          ?

          1.???????? 使用 window exporer 或我的電腦,定位到 E:\subversion\repository ,并確保本目錄為空。

          2.???????? 在本目錄下,右鍵菜單中選擇“ TortoiseSVN ”- > Create repository here…

          3.???????? 在彈出的窗口中選擇數(shù)據(jù)存在文件系統(tǒng)方式,使用默認(rèn)選取 (FSFS) ,點(diǎn)擊確定。

          4.???????? 檢查本目錄下是否有生產(chǎn)的系統(tǒng)文件和文件夾,如果有,成功!

          2.2. 配置服務(wù)

          進(jìn)入倉庫目錄下的 conf 文件夾。也就是 E:\subversion\repository\conf

          里面有 3 個默認(rèn)的配置文件: authz , passwd , svnserve.conf

          svnserve.conf 控制 svnserve 的啟動配置選項(xiàng),可以配置認(rèn)證和授權(quán)方式,典型的配置是設(shè)置由 authz 控制授權(quán), passwd 控制認(rèn)證的方式來控制訪問權(quán)限。也可以使用匿名方式,但不推薦。

          ?

          使用 authz passwd 的典型配置:

          ?

          請?zhí)貏e注意:以下三個配置文件的配置,每行有效配置前不能有空格,不然配置會失敗。

          ?

          服務(wù)配置文件 svnserve.conf

          ……

          ### 匿名方式不允許訪問

          anon-access = none

          ……

          ### Uncomment the line below to use the default password file.

          ### 表示訪問倉庫的認(rèn)證有文件 passwd 提供的賬戶確定

          password-db = passwd

          ……

          ### Uncomment the line below to use the default authorization file.

          ### 表示認(rèn)證后的賬戶訪問權(quán)限由文件 authz 定義

          authz-db = authz

          ### This option specifies the authentication realm of the repository.

          ……

          ?

          認(rèn)證配置文件 passwd

          ?

          passwd 文件實(shí)際提供訪問本倉庫的賬戶管理,文件格式就是 ini 方式的格式

          ?

          [users]

          harry = harryssecret

          sally = sallyssecret

          user=usersecret

          ?

          這表示本倉庫配置了二個用戶及:其中一個用戶 harry, 他的訪問密碼是 harryssecret 。訪問密碼可以使用明文,也可以使用 htpasswd.exe apache 服務(wù)器提供的工具方法,安裝 apache 服務(wù)器后,在其 bin 目錄中有該程序文件)進(jìn)行加密處理。

          ?

          授權(quán)配置文件 authz

          該文件負(fù)責(zé)認(rèn)證后的用戶的權(quán)限控制,配置稍微復(fù)雜,但其實(shí)也就是個 ini 配置文件而已。

          典型配置:

          # groups 段提供配置組的功能 , 但組成員必須是 passwd 文件中定義的用戶才有效??梢詫M

          # 進(jìn)行權(quán)限控制,所有組成員具有組對應(yīng)的訪問權(quán)限。

          [groups]

          # 表示定義了一個管理組叫 admin_group, 包括 harry sally , admin_group 前千萬不能有空格

          admin_group= harry, sally

          ?

          # 下面就是定義具體倉庫下目錄的訪問權(quán)限

          ?

          # 一般對管理員來說都具有整個倉庫的讀寫權(quán)限,一般人員對整個敞開具有讀取權(quán)限,下面

          # 就是這樣的配置 ,[/] 表示整個倉庫的根,組的引用使用 @ ,對應(yīng)的權(quán)限可以是 r,w,rw 或空

          [/]

          @admin_group = rw

          * = r

          ?

          ?

          以上的配置完成后,我嗎就可以啟動服務(wù)器了,下面說明服務(wù)器的啟動。

          注意,以上 authz passwd 文件在管理中因?yàn)榫唧w項(xiàng)目的加入和人員的變動會經(jīng)常的修改,這也是 SVN 管理主要的工作

          2.3. 啟動服務(wù) (svnserve)

          ?

          Svn 服務(wù)器一般有三種方式, svnserve , apache SSH 。其中常用的有 svnserve apache 方式。本文只以 svnserve 方式講解??偟膩碚f svnserve 是最高效的方式,一般應(yīng)用于內(nèi)部開發(fā)網(wǎng)中使用。 Apache 方式因?yàn)榭梢院芎玫牟渴鹪?/span> internet 上,所以公網(wǎng)使用最方便,但配置稍微相對復(fù)雜點(diǎn)點(diǎn),呵呵~~。三種方式具體的優(yōu)缺點(diǎn),請參考本文后面的參考文檔。

          ?

          命令方式( DOS 下):

          ?

          svnserve –d –r E:\subversion\repository

          -d 參數(shù)是以獨(dú)立服務(wù)的方式啟動

          -r 是制訂要加載的倉庫的物理路徑

          ?

          Windows 系統(tǒng)服務(wù)

          subversion1.4 后的版本,提供了安裝為服務(wù)的支持

          可以參考本文安裝: .

          ?

          SC create svn1.4 binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"E:\subversion\repository\"" depend= Tcpip start= auto

          ?

          1.???????? 紅色部分: SVN 的安裝目錄

          2.???????? 藍(lán)色部分:倉庫根目錄

          3.???????? 每個參數(shù)的格式是:參數(shù)名稱 = 值。參數(shù)名稱和 = 間沒有空格, = 后必須有空格, SC 的變態(tài)特性,完全的 BUG.. 注意就可以了

          4.???????? 本命令方式只能用于 svn1.4 以上版本

          5.???????? 刪除服務(wù): sc delete svn1.4

          2.4. 添加項(xiàng)目 (import)

          上面的安裝配置工作完成后,啟動服務(wù),現(xiàn)在進(jìn)入使用的主題,首先一步是把需要進(jìn)行版本管控的項(xiàng)目加入到倉庫中。在作這個工作前,需要先接受下, SVN 推薦的項(xiàng)目路徑結(jié)構(gòu)。一般推薦是使用一個 trunk 保存項(xiàng)目主干最新版本, breaches 保存以后的多個分支, tags 一般保存發(fā)布或階段性發(fā)布的標(biāo)簽版本。如下

          ?

          Project1/trunk

          Project1/breaches

          Project1/tags

          ?

          下面我嗎使用該目錄結(jié)構(gòu),加入一個測試的項(xiàng)目 project1 來演示添加項(xiàng)目的過程。

          ?

          在任意目錄建立文件夾 test ,然后在 test 下建立上面推薦的項(xiàng)目目錄結(jié)構(gòu)。如下

          ?

          test/project1/trunk

          test/project1/breaches

          test/project1/tags

          ?

          命令方式:

          DOS 下定位到 test 上級目錄

          svn import test svn://localhost -m "init project1" --username harr y --password=harryssecret

          ?

          新增 ?????????? test\project1

          新增 ?????????? test\project1\trunk

          新增 ?????????? test\project1\readme.txt

          新增 ?????????? test\project1\breaches

          新增 ?????????? test\project1\tags

          提交后的修訂版為 1 。

          ?

          TortoiseSVN 客戶端

          ?

          1.?????? 右鍵點(diǎn)擊 test 目錄,選擇“ TortoiseSVN ”- > Import

          2.?????? 在彈出的操作界面中 URL repository 中輸入服務(wù)器地址 svn://localhost

          3.?????? 在彈出的操作界面中 Import message 下面的文本域輸入 init project1

          4.?????? 點(diǎn)擊 OK

          5.?????? 如果第一次使用,會彈出輸入賬戶的界面,輸入對應(yīng)的用戶賬戶,選擇保存,下次使用就不用在輸入賬戶認(rèn)證信息了。

          ?

          查看是否添加成功:

          ?

          1.???????? 使用 window exporer 或我的電腦,定位到 E:\subversion\repository ,并確保本目錄為空。

          2.???????? 在本目錄下,右鍵菜單中選擇“ TortoiseSVN ”- > Repo-browser

          3.???????? 在彈出的輸入框中輸入 SVN 服務(wù)器地址 svn://localhost

          4.???????? Repository Browser 窗口中,你可以點(diǎn)擊樹形結(jié)構(gòu)的倉庫目錄,查看是否存在你剛才添加的 project1

          5.???????? 如果你的用戶有足夠的權(quán)限,你可以在本界面的樹目錄上使用右鍵管理你的倉庫和項(xiàng)目。

          ?

          2.5. 工作副本 (checkout)

          工程加入到倉庫后,下面就可以進(jìn)入實(shí)際的研發(fā)使用了,首先是要建立個本地的工作副本,使用 checkout 。

          ?

          1.?????? 在任意開發(fā)機(jī)上建立工作目錄。如: D:\workspace\project1

          2.?????? 進(jìn)入具體項(xiàng)目的工作目錄,右鍵菜單中選擇“ SVN Checkout

          3.?????? checkout 窗口中:

          URL of Repository 是你具體的項(xiàng)目的主干倉庫訪問地址

          如: svn://localhost/project1/trunk

          Checkout directory 是你本地副本的地址

          如: D:\workspace\project1

          其它的使用默認(rèn)選項(xiàng),如需要了解具體含義,請查看參考文檔

          4.?????? 點(diǎn)擊 OK

          ?

          2.6. 常用開發(fā)操作

          以下主要都是在工作副本的開發(fā)中的常用操作。

          2.6.1. 更新和同步

          其它開發(fā)人員或在其它工作副本上提交到倉庫的最新版本文件,需要更新到你自己的工作副本的操作。使用更新使你的工作副本于服務(wù)器倉庫代碼同步。如果你更新的文件中本地副本和服務(wù)器倉庫中的文件都是在同一版本上,本地副本作了修改文件操作后, SVN 沒有辦法更新,因?yàn)樗恢朗欠裨摲艞壉镜氐男薷?,它默認(rèn)會操作合并的方式,但往往很多時候有些文件是不能簡單的自動合并的,所有最好的辦法是以倉庫的版本為準(zhǔn)進(jìn)行更新,這就是同步操作。

          ?

          下面主要說明使用客戶端工具 TortoiseSVN 的操作方式,其它客戶端工具和命令方式類似。

          ?

          1.???????? 在需要更新或同步文件上或文件夾內(nèi)右鍵點(diǎn)擊,選擇 SVN update 命令

          2.???????? 如果需要同步某個文件或文件夾,需要先刪除本地版本,然后在使用 SVN update

          ?

          2.6.2. 添加和提交

          。。。

          3. ???? 參考文檔

          1.???????? Svn 安裝后的官方文檔

          2.???????? SVN 中文官方網(wǎng)站: http://www.subversion.org.cn

          3.???????? 中文文檔: http://www.subversion.org.cn/svnbook/

          ?

          主站蜘蛛池模板: 南陵县| 德格县| 榆树市| 玉树县| 固原市| 汾西县| 上犹县| 河池市| 平遥县| 祁阳县| 武功县| 稻城县| 湘乡市| 贞丰县| 咸阳市| 遵义县| 阆中市| 赣州市| 石台县| 策勒县| 白玉县| 临海市| 云霄县| 紫阳县| 北安市| 潼南县| 广灵县| 浪卡子县| 防城港市| 阜康市| 长治市| 诏安县| 衡南县| 汉川市| 陕西省| 红原县| 白银市| 黄骅市| 岫岩| 边坝县| 固镇县|