Subversion 是一個(gè)優(yōu)秀的版本控制工具,絲毫不遜色于cvs,他的主要特性
保留大多數(shù)CVS 特性
目錄、重命名和文件meta-data都已經(jīng)版本化
提交是真實(shí)的原子操作
可以通過(guò)WebDAV/DeltaV協(xié)議選擇Apache作為網(wǎng)絡(luò)服務(wù)器
可以選擇獨(dú)立服務(wù)器模式
分支和標(biāo)簽是代價(jià)低廉(固定不變的)的操作
本地化的客戶端/服務(wù)器,分層的庫(kù)設(shè)計(jì)
客戶端/服務(wù)器雙向傳輸區(qū)別的協(xié)議
消耗和修改部分的大小成比例,而不是數(shù)據(jù)的大小
可以選擇數(shù)據(jù)庫(kù)和純文件的版本庫(kù)實(shí)現(xiàn)
對(duì)象鏈接的版本化
處理二進(jìn)制文件的高效性
可解析的輸出
本地化信息
服務(wù)端有提供方式,通過(guò)svnserve是一種,svnserve是一個(gè)小型的服務(wù)端,可以同客戶端在TCP/IP基礎(chǔ)上的自定義有狀態(tài)協(xié)議通訊,客戶端通過(guò)使用開(kāi)頭為svn://或者svn+ssh://svnserve的URL來(lái)訪問(wèn)一個(gè)svnserve服務(wù)。用svnserve的話比較容易和系統(tǒng)賬號(hào)整合,可以通過(guò)ssh驗(yàn)證來(lái)驗(yàn)證權(quán)限,例如
直接連
svn list svn://host.example.com/project1
ssh
svn list svn+ssh://host.example.com/repos/project
配置通過(guò)apache來(lái)驗(yàn)證和訪問(wèn)有個(gè)好處就是繞過(guò)防火墻,一般對(duì)80是不會(huì)有什么防火墻限制的,省卻了不少的麻煩
可以這樣
svn list http://host.example.com/repos1
如果有https支持就可以
svn list https://host.example.com/repos1
可以看 http://www.subversion.org.cn/
具體的各個(gè)軟件的安裝就不講了,apache2 svn,需要注意的是,一定要apache2,因?yàn)镾ubversion的Apache模塊只是為Apache 2 API寫(xiě)的。。開(kāi)動(dòng),在apache的配置文件中加載模塊
使用LoadModule來(lái)加載mod_dav_svn模塊LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so這一步慘痛,subversion地文檔中只提到mod_dav_svn.so,而沒(méi)有說(shuō)mod_authz_svn.so,害我在apache里面配置來(lái)配置去死活不行。
下一步,先創(chuàng)建一個(gè)倉(cāng)庫(kù),隨便導(dǎo)入個(gè)工程
svnadmin create /home/repos1
svn import /home/project1 file:///home/repos1 -m "initial import"
然后在httpd.conf里面再加入
<Location /repos1>
DAV svn
SVNPath /home/repos1
AuthType Basic
AuthName "repos1"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>恩,配置部分就好了,還差驗(yàn)證文件
[root@vmwaretest root]# htpasswd -cm /etc/svn-auth-file admin
New password:
Re-type new password:
Adding password for user admin
[root@vmwaretest root]# htpasswd -m /etc/svn-auth-file admin2
New password:
Re-type new password:
Adding password for user admin2
就像這樣就好了。admin admin2就可以輸入密碼登陸了
聯(lián)系客服