SVN入門介紹如何創(chuàng)建版本庫
上節(jié)我們講到SVN入門中SVN服務(wù)器端配置,這節(jié)我們繼續(xù)介紹,另外介紹一下SVN建立版本庫問題,看完本文SVN入門你肯定有不少收獲,希望本文能教會(huì)你更多東西。
2.4Windows下的svnserve+ssh配置
需要使用Cygwin來配置ssh,此處略,詳情可參考http://tortoisesvn.net/node/156
2.5&2.6基于Apache服務(wù)器的SVN配置
概述
Apache的http服務(wù)器是一個(gè)subversion可以利用的“重型”網(wǎng)絡(luò)服務(wù)器,通過一個(gè)自定義模塊,httpd可以讓SVN版本庫通過WebDAV/DeltaV協(xié)議在客戶端前可見。可以將瀏覽器指向版本庫的URL,無需安裝SVN客戶端就可以瀏覽內(nèi)容。
基于Apache的SVN需要兩個(gè)包的四個(gè)部分:Apachehttpd2.0及其中包含的mod_davDAV模塊,Subversion及與之一起發(fā)布的mod_dav_svn模塊。有了上述組件之后,配置步驟一般如下
1)配置好http2.0,并且使用mod_dav啟動(dòng)
2)為mod_dav安裝mod_dav_svn插件
3)配置httpd.conf來發(fā)布版本庫。SVN入門介紹Linux下基于APache的SVN服務(wù)器配置
2.5Linux下基于APache的SVN服務(wù)器配置
(參考http://www.123shang.cn/blog/?p=53)
(參考“ubuntu下svn+apache版本管理服務(wù)器配置”)
2.5.1安裝aphache
$sudoapt-getinstallapache2#安裝apache
$sudoapt-getinstalllibapache2-svn#安裝相關(guān)組件
$sudoapt-getinstallsubversion#安裝svn
安裝完畢后啟動(dòng)apache
$/usr/local/apache/bin/apachectl–kstart
——用瀏覽器查看http://localhost/,得到itworks,說明apache已經(jīng)配置成功了。
2.5.2創(chuàng)建版本庫(見第三節(jié))
2.5.3添加用戶并設(shè)置密碼文件
版本庫的密碼文件,一般命名為PasswdFile,由用戶通過命令創(chuàng)建,里面保存授權(quán)用戶的用戶名和MD5加密后的密碼。創(chuàng)建密碼文件,密碼文件保存在版本庫文件目錄下,在終端通過下面的命令創(chuàng)建密碼文件:
$htpasswd-c/etc/svn/passwordfileusername
passwordfile密碼文件名稱,可以由用戶自行命名
username你希望添加的用戶名,比如zhangsan,lisi,wangwu
-c用來創(chuàng)建密碼文件
按提示輸入密碼,添加成功后會(huì)提示adduserusername,然后可以再繼續(xù)添加第二個(gè)用戶。
$htpasswd/etc/svn/passwordfileseconduser
2.5.4httpd.conf文件修改
conf文件正常安裝的話在etc/apache2/目錄下,雙擊打開進(jìn)行編輯,添加以下內(nèi)容:
LoadModuledav_svn_modulemodules/mod_dav_svn.so加載mod_dav_svn模塊
LoadModuleauthz_svn_module/usr/lib/apache2/modules/mod_authz_svn.so加載mod_anthz.svn模塊
- <Location/vcard>
- DAVsvn
- SVNPath/home/bb/svn/vcard/指明版本庫的路徑
- AuthTypeBasic認(rèn)證類型為基本認(rèn)證
- AuthName"SVNrepos"認(rèn)證名稱,將在IE界面彈出一個(gè)對(duì)話框,其標(biāo)題就是SVNrepos
- AuthUserFile/home/bb/svn/vcard/VcardPasswdFile加載密碼文件,訪問版本庫用戶的文件,用apache的htpasswd命令生成
- #AuthzSVNAcessFile//home/bb/svn//vcard/accesspolicy訪問版本庫權(quán)限的文件
- #satisfyAny
- Requirevalid-user要求驗(yàn)證用戶,即不能匿名訪問;如果沒有這個(gè)語句,則只能第一個(gè)用戶可以訪問新建庫
- </Location>
保存文件退出,重新啟動(dòng)apache
#/usr/local/apache/bin/apachectl–krestart
測(cè)試:
$svncheckouthttp://localhost/svn。下面我們看一下SVN入門中Windows下基于APache的SVN服務(wù)器配置。
2.6Windows下基于APache的SVN服務(wù)器配置
2.6.1下載安裝Apache
APache:http://httpd.apache.org/download.cgi
——如果你將Apache安裝成一個(gè)服務(wù),它將以本地system帳戶來運(yùn)行。為Apache創(chuàng)建一個(gè)單獨(dú)的用戶來運(yùn)行它將會(huì)更安全一些。
——請(qǐng)確保運(yùn)行Apache的用戶有版本庫的完全訪問權(quán)限(右鍵版本庫目錄->屬性->安全)。要不然,用戶將無法提交他們的更改。
——就算Apache以本機(jī)system來運(yùn)行,你也要設(shè)置它能完全讀寫版本庫目錄。
——如果沒有為Apache配置這個(gè)許可,用戶將會(huì)得到"禁止訪問"的錯(cuò)誤信息,在Apache的錯(cuò)誤日志中表現(xiàn)為錯(cuò)誤500。
2.6.2配置Subversion
使用Windwos資源管理器,來到Subversion的安裝目錄(通常是c:\programfiles\Subversion),找到文件httpd/mod_dav_svn.so和mod_authz_svn.so,復(fù)制這些文件到Apache的模塊目錄(通常是c:\programfile\apachegroup\apache2\modules)。
2.6.3配置httpd.conf文件
路徑通常為c:\programfiles\apachegroup\apache2\conf\httd.conf),修改以下內(nèi)容:
去掉以下兩行的注釋號(hào)“#”:
#LoadModuledav_fs_modulemodules/mod_dav_fs.so
#LoadModuledav_modulemodules/mod_dav.so
在LoadModule節(jié)的最后添加以下兩行:
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
文件末尾添加以下行,讓Apache知道哪個(gè)URL將被Subversion使用:
- <Location/svn>
- DAVsvn
- SVNParentPathD:\SVN
- AuthTypeBasic
- AuthName"Subversionrepositories"
- AuthUserFileD:\passwd
- #AuthzSVNAccessFileD:\svnaccessfile
- Requirevalid-user
- </Location>
——這樣配置表示:你所有的版本庫將位于D:\SVN目錄下,要訪問你的版本庫可以使用這樣的URL:http://MyServer/svn/,訪問權(quán)限將由passwd文件中的用戶名/密碼來限制。
要?jiǎng)?chuàng)建passwd文件,可以打開命令行,將當(dāng)前目錄切換到apache2目錄,輸入命令:
c:\programfiles\apachegroup\apache2>bin\htpasswd-cpasswd<username>
重啟Apache服務(wù)。
使用瀏覽器測(cè)試。下面我們介紹一下SVN入門中關(guān)于建立版本庫問題。
三、建立版本庫
在前面的服務(wù)器配置上我們通常假設(shè)已經(jīng)建立了版本庫,這是為了避免在每種配置中重復(fù)贅述這種操作,因此把它獨(dú)立出來講。
版本庫創(chuàng)建完畢后會(huì)在目錄下生成若干個(gè)文件和文件夾:
dav目錄是提供給Apache與mod_dav_svn使用的目錄,讓它們存儲(chǔ)內(nèi)部數(shù)據(jù);
db目錄就是所有版本控制的數(shù)據(jù)文件;hooks目錄放置hook腳本文件的目錄;
locks用來放置Subversion文件庫鎖定數(shù)據(jù)的目錄,用來追蹤存取文件庫的客戶端;
format文件是一個(gè)文本文件,里面只放了一個(gè)整數(shù),表示當(dāng)前文件庫配置的版本號(hào)。
3.1Linux下創(chuàng)建版本庫
版本庫有兩種數(shù)據(jù)存儲(chǔ)格式:BerkeleyDB和FSFS,推薦選用FSFS格式,具體可以查閱參考資料了解二者的區(qū)別。
創(chuàng)建版本庫時(shí),在終端運(yùn)行如下命令:
#運(yùn)行創(chuàng)建版本庫的命令,指定數(shù)據(jù)存儲(chǔ)為FSFS,如果要指定為BerkeleyDB,則將fsfs替換為bdb
$svnadmincreate--fs-typefsfs/etc/svn/repos創(chuàng)建版本庫,運(yùn)行這個(gè)命令后,我們就可以看到一個(gè)版本庫應(yīng)有的文件
更改版本庫的訪問權(quán)限
$sudomkdir/home/svn
$cd/home/svn
$sudomkdirmyproject
前面三條命令用于創(chuàng)建版本庫目錄,如果已經(jīng)建立,就可以省略掉;后面三條用于修改權(quán)限
$sudochown-Rwww-datamyproject
$sudochgrp-Rsubversionmyproject
$sudochmod-Rg+rwsmyproject這條命令允許用戶對(duì)版本庫進(jìn)行讀寫操作,即可以更新,可以提交
3.2Windows下創(chuàng)建版本庫
可以使用TortoiseSVN圖形化的完成這一步,在目錄E:subversionrepository下"右鍵->TortoiseSVN->CreateRepositoryhere...“,然后可以選擇版本庫模式,使用默認(rèn)即可,然后就創(chuàng)建了一系列目錄和文件。
[Tips]如果下載的是setup.exe版本,安裝程序安裝后會(huì)自動(dòng)設(shè)置系統(tǒng)變量,如果下載的是zip版就需要手動(dòng)設(shè)置系統(tǒng)變量.
也可以使用命令行來創(chuàng)建:
C:\>svnadmincreateF:\svn\。本節(jié)介紹SVN入門完畢,請(qǐng)關(guān)注本節(jié)其他相關(guān)報(bào)道。
【編輯推薦】