Windows操作系統(tǒng)中SVN使用手冊(cè)詳解
本節(jié)主要介紹一下Windows下SVN使用手冊(cè),在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用,讓我們一起來(lái)學(xué)習(xí)Windows下SVN使用手冊(cè)吧。
一、下載
首先,請(qǐng)登錄SVN官網(wǎng)http://subversion.tigris.org/下載服務(wù)端和客戶(hù)端安裝包。
可以根據(jù)你的需求,下載相應(yīng)的發(fā)行版。如VisualSVN,其服務(wù)端是免費(fèi)的,它提供了一個(gè)界面管理器,實(shí)現(xiàn)可視化配置管理,然而客戶(hù)端卻是收費(fèi)的。
VisualSVNServer下載:http://www.visualsvn.com/server/download/對(duì)于大多數(shù)只進(jìn)行源碼版本控制的用戶(hù)來(lái)說(shuō),TortoiseSVN無(wú)疑是首選。TortoiseSVN下載:http://tortoisesvn.tigris.org/
如果不嫌麻煩的話(huà),建議使用Apatch2.x手動(dòng)配置版本,你可以到該網(wǎng)址下載http://subversion.tigris.org/getting.html#windows
二、安裝運(yùn)行
將下載的svn-win32-1.5.4.zip解壓到如“D:SVN”,生成bin,iconv,licenses,share等子目錄,在bin下提供了很多命令行工具,如svnserve.exe、svnadmin.exe、svn.exe,使用--help可以獲取幫助。
啟動(dòng)服務(wù)器:svnserve--daemon--root"E:svnRoot"--root"E:svnRoot"指定倉(cāng)庫(kù)根目錄,服務(wù)器默認(rèn)使用3690端口。
注冊(cè)為服務(wù):sccreateSVNServicebinpath=""D:svnbinsvnserve.exe"--service--rootD:svnRoot"displayname="SVNService"depend=Tcpip
注意這里"D:svnbinsvnserve.exe",當(dāng)path中含有空格時(shí),需要"path"包含起來(lái)。另外命令中每個(gè)等號(hào)前面不能有空格,而等號(hào)后面必須有空格,不然命令是不會(huì)被執(zhí)行的,也不會(huì)報(bào)錯(cuò)。
客戶(hù)端的安裝比較簡(jiǎn)單,運(yùn)行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi,安裝后重啟計(jì)算機(jī)即可。
三、建立版本庫(kù)
運(yùn)行Subversion服務(wù)器需要首先要建立一個(gè)版本庫(kù)(Repository),可以看作服務(wù)器上存放數(shù)據(jù)的數(shù)據(jù)庫(kù),SVN使用手冊(cè)有兩種方法可以建立版本庫(kù):
1、命令行方法:在命令行模式下,運(yùn)行svnadmincreated:svnRootvwas,即可在d盤(pán)下創(chuàng)建一個(gè)版本庫(kù)vwas。通常我們選用該方法。注意:版本庫(kù)必須創(chuàng)建到根目錄d:svnRoot,否則無(wú)法查找。(因?yàn)閟ubversion對(duì)版本庫(kù)采用子目錄管理方法)
2、界面操作方法:在d:svnRoot目錄下,右鍵,選擇TortoiseSVN下的“在此創(chuàng)建文件庫(kù)”,文件庫(kù)類(lèi)型選擇默認(rèn)的“本地文件系統(tǒng)(FSFS)”,這樣就會(huì)在該目錄下創(chuàng)建一個(gè)版本庫(kù)。(需要在服務(wù)器上安裝TortoiseSVN)repository創(chuàng)建完畢后會(huì)在目錄下生成若干個(gè)文件和文件夾,dav目錄是提供給Apache與mod_dav_svn使用的目錄,讓它們存儲(chǔ)內(nèi)部數(shù)據(jù);db目錄就是所有版本控制的數(shù)據(jù)文件;hooks目錄放置hook腳本文件的目錄;locks用來(lái)放置Subversion文件庫(kù)鎖定數(shù)據(jù)的目錄,用來(lái)追蹤存取文件庫(kù)的客戶(hù)端;format文件是一個(gè)文本文件,里面只放了一個(gè)整數(shù),表示當(dāng)前文件庫(kù)配置的版本號(hào);
四、配置權(quán)限
SVN使用手冊(cè)介紹配置權(quán)限問(wèn)題。注意:subversion修改配置后無(wú)須重啟服務(wù)。
進(jìn)入版本庫(kù)如d:svnRootvwasconf,有三個(gè)配置文件svnserve.conf、passwd、authz,修改時(shí)必須去掉#和前面的空格,否則會(huì)報(bào)錯(cuò),=號(hào)兩邊允許空格。
svnserve.conf文件內(nèi)容如下:(svnserve默認(rèn)使用這些配置)
[general]
#anon-access=read(這兩句是總綱,控制匿名用戶(hù)的權(quán)限,既使authz中使用*=rw也無(wú)法打破,實(shí)際應(yīng)用中這里可能設(shè)置為none,禁止匿名用戶(hù)進(jìn)行任何訪問(wèn))
#auth-access=write
#password-db=passwd
#authz-db=authz
#realm=MyFirstRepository
各參數(shù)定義如下:
anon-access:定義非授權(quán)用戶(hù)的訪問(wèn)權(quán)限,有三種方式:none、read、write,設(shè)置為none限制訪問(wèn),read為只讀,write為具有讀寫(xiě)權(quán)限,默認(rèn)為read。
auth-access:定義授權(quán)用戶(hù)的訪問(wèn)權(quán)限,有三種方式:none、read、write,設(shè)置為none限制訪問(wèn),read為只讀,write為具有讀寫(xiě)權(quán)限,默認(rèn)為write。
password-db:定義保存用戶(hù)名和密碼的文件名稱(chēng),這里為passwd,和該文件位于同一目錄。
authz-db:定義保存授權(quán)信息的文件名稱(chēng),這里為authz,和該文件位于同一目錄。
realm:定義客戶(hù)端連接是的“認(rèn)證命名空間”,Subversion會(huì)在認(rèn)證提示里顯示,并且作為憑證緩存的關(guān)鍵字。
subversion按版本目錄來(lái)進(jìn)行管理,只有在根目錄下存在版本庫(kù)目錄,版本庫(kù)才有效,如必須存在d:svnRootvwas,svnlistsvn://localhost/vwas才能執(zhí)行成功。版本庫(kù)conf下必須存在svnserve.conf,為了方便的進(jìn)行多庫(kù)管理,可以讓所有版本庫(kù)共用統(tǒng)一的用戶(hù)和權(quán)限文件。
password-db=../../passwd將passwd放到svnRoot根目錄,統(tǒng)一管理所有用戶(hù)
authz-db=../../authz
passwd文件內(nèi)容如下:
- [users]
- #harry=harryssecret
- #sally=sallyssecret
- 這里定義了兩個(gè)用戶(hù)harry和sally,用戶(hù)密碼分別是harryssecret和sallyssecret。同樣,我們還可以定義自己的用戶(hù)名和密碼。如下面添加guest用戶(hù),密碼空guest=
- authz文件內(nèi)容如下:
- [groups]
- #harryharry_and_sally=harry,sally
- #[/foo/bar]
- #harry=rw
- #*=
- #[repository:/baz/fuz]
- #@harry_and_sally=rw
- #*=r
這里定義了組harry_and_sally,組在引用時(shí)需要@組名,*表示所有用戶(hù),包括匿名用戶(hù)。使用組的好處是,往往在實(shí)際應(yīng)用中,同一個(gè)倉(cāng)庫(kù)或目錄并不只是一個(gè)用戶(hù)訪問(wèn),通常我們將用戶(hù)編成dev開(kāi)發(fā)組、test測(cè)試組、man管理組,doc文檔組,分別進(jìn)行權(quán)限分配,如
- [vwas:/]
- *=
- [vwas:/doc]
- @man=rw
- @doc=rw
- @dev=r
- @test=r
- [vwas:/srv]
- @dev=rw
- @test=r
- [vwas:/test]
- @test=rw
subversion按照[倉(cāng)庫(kù)名:目錄](méi)的格式進(jìn)行權(quán)限分析,忽略倉(cāng)庫(kù)名時(shí),如[/]表示對(duì)所有的版本庫(kù)生效。由于設(shè)計(jì)subversion的大佬們習(xí)慣linux,到了windows下,他們?nèi)匀皇褂?quot;/"來(lái)標(biāo)識(shí)子目錄。
尤其需要注意的是:
子目錄繼承父目錄的訪問(wèn)權(quán)限,如果指定了管理員對(duì)根目錄具有讀寫(xiě)權(quán)限,則管理員對(duì)子目錄也具有讀寫(xiě)權(quán)限。
權(quán)限規(guī)則沒(méi)有優(yōu)先級(jí),采用“|”“&“的方式進(jìn)行。
但是,如果在子目錄中設(shè)置*=來(lái)割斷對(duì)父目錄權(quán)限的繼承,則子目錄中必須設(shè)置管理員權(quán)限為rw,下面這種設(shè)置是有問(wèn)題的:
[arm:/]
qianxin=rw
[arm:/diary/shanghai]
dai=rw
gongyu=rw
*=(這句表示割斷除dai和gongyu以外所有用戶(hù)的權(quán)限)請(qǐng)期待下節(jié)SVN使用手冊(cè)介紹。
【編輯推薦】