您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > SVN
關(guān)于Subversion系統(tǒng)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/2/21 14:31:54 ] 推薦標(biāo)簽:

多年來,并發(fā)版本系統(tǒng)(CVS)一直是在Linux上管理代碼或者文本的標(biāo)準。作為基于RCS上建立但卻允許多用戶協(xié)作的系統(tǒng)而言,CVS記錄所有文件的修改信息。這對于程序開發(fā)者、網(wǎng)絡(luò)設(shè)計者和系統(tǒng)管理員而言,是非常有用的。
然而,CVS逐漸顯示出它的衰老,出現(xiàn)了相似的源代碼管理軟件。然而大多這種東西都是以牟利為主要目的的。
Subversion是一種相對新鮮的源代碼管理系統(tǒng)。雖然事實上它還在不斷的反展之中,但是Subversion已經(jīng)是一個非常穩(wěn)定而且成熟的產(chǎn)品。它是一個全新的系統(tǒng),其功能可以和CVS媲美,同時,它要比CVS更直觀,更容易操作。本文Subversion的安裝和一些特殊功能作一個介紹。
安裝服務(wù)器端

下載Apache和SVN源碼包
從官方網(wǎng)站臺下載httpd-2.0.52.tar.gz,subversion-1.1.1.tar.gz

(因為redhat 9默認安裝的Apache沒有并包含--enable-so選項,所以無法產(chǎn)生mod_dav_svn.沒有這個模塊,SVN無法采用http方式運行,所以必須重新編譯新的Apache)
以root身份執(zhí)行:
#tar zxvf httpd-2.0.52.tar.gz
#cd httpd-2.0.52
#./configure --enable-dav --enable-so --enable-maintainer-mode
#make
#make install
此時會產(chǎn)生/usr/local/apache2目錄,接著執(zhí)行:
#tar zxvf subversion-1.1.1.tar.gz
#./configure --with-apxs=/usr/local/apache2/bin/apxs
# rm /usr/local/lib/libsvn*
# make clean && make && make install

此時會自動在/usr/local/apache2/conf/httpd.conf添加
LoadModule dav_svn_module  modules/mod_dav_svn.so
安裝完成后,運行svnserver --version確認版本為1.1.1。
SVN服務(wù)器安裝結(jié)束.

安裝客戶機端

window客戶機:
直接安裝TortoiseSVN-1.1.1-UNICODE_svn-1.1.1.msi,方法同一般軟件安裝相同。
Linux客戶機:
方法輿安裝服務(wù)器相同。
(注意redhat 9默認安裝的SVN版本為0.17.1,它的客戶端命令svn無法輿新的SVN服務(wù)器通訊,必須重新安裝)

建立倉庫Repository

Subversion 的檔案庫是個中央倉儲, 用來存放任意數(shù)量項目的受版本控管資料,建立方法很簡單
#svnadmin create path/to/repos
舉個例子:
#svnadmin create /home/mysvn
#chown –R nobody /home/mysvn
運行服務(wù)器

Subversion服務(wù)器有兩種運行方式,一是可以作為Apache 2.0的一個模塊, 以WebDAV/DeltaV協(xié)議與外界連通;另外,也可使用Subversion 自帶的小型服務(wù)器程序svnserve。該程序使用的是自帶的通訊協(xié)議,可以很容易地透過SSH以
以http方式運行
在/usr/local/apache2/conf/httpd.conf中加入:
<Location /svn/repository>
 DAV svn
 SVNPath /home/mysvn
</Location>
在服務(wù)器的瀏覽器中輸入網(wǎng)址:
http://localhost/svn/repository/
這時候,你會看到這樣的顯示:

這表明服務(wù)器已經(jīng)以http方式正常運行了.
以svnserve方式運行
這種方式的運行又可以分為以下兩種(這和vsftp有些相似)
1) standalone mode
直接運行 #svnserve –d
運行 lsof -i :3690可以看到SVN服務(wù)器已經(jīng)在運行
2) x.netd mode
在/etc/xinetd.d/下生成svnserve文件,內(nèi)容如下
service svnserve
{
disable = no
socket_type             = stream
protocol                 = tcp
wait                    = no
user                    = apache
server                  = /usr/local/bin/svnserve
server_args             = -i
}
編輯 /etc/services ?,加入底下兩行:
svnserve        3690/tcp                        # Subversion svnserve
svnserve        3690/udp                        # Subversion svnserve
重啟xinetd服務(wù),運行 lsof -i :3690可以看到SVN服務(wù)器已經(jīng)在運行

客戶機訪問

客戶機的訪問方法輿服務(wù)器的運行方式有直接關(guān)系
window客戶機:
1) 服務(wù)器以http方式運行
安裝完TortoiseSVN-1.1.1-UNICODE_svn-1.1.1.msi后,在你想工作的目錄下點擊右鍵,執(zhí)行checkout,按上圖輸入即可。

2) 服務(wù)器以svnserve方式運行
同上的區(qū)別只是URL of repository變?yōu)?svn://svn服務(wù)器ip/home/mysvn
或者 svn+ssh://svn服務(wù)器ip/home/mysvn
(注意不是//svn服務(wù)器ip//svn/repository)
linux客戶機:
1) 服務(wù)器以http方式運行
執(zhí)行 #svn checkout http: //svn服務(wù)器ip/svn/repository
2) 服務(wù)器以svnserve方式運行
執(zhí)行 #svn checkout svn://svn服務(wù)器ip/home/mysvn
或者 #svn checkout svn+ssh://svn服務(wù)器ip/home/mysvn

客戶認證機制

這輿服務(wù)器的運行方式有關(guān)
服務(wù)器以http方式運行
比如我們想給 Sally 與 Harry 送交存取檔案庫的權(quán)限. 首先, 我們必須把它們加入到密碼檔案.
# ### 第一次: 以 -c 建立檔案
# htpasswd -c /etc/svn-auth-file harry
New password: *****
Re-type new password: *****
Adding password for user harry
# htpasswd /etc/svn-auth-file sally
New password: *******
Re-type new password: *******
Adding password for user sally
#
接著,在/usr/local/apache2/conf/httpd.conf的加入:
<Location /svn/repository >
 DAV svn
 SVNPath /home/mycvs
 AuthType Basic
 AuthName "Subversion repository"
 AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd