Subversion 是一個(gè)優(yōu)秀的版本控制工具,絲毫不遜色于cvs,他的主要特性
保留大多數CVS 特性
目錄、重命名和文件meta-data都已經(jīng)版本化
提交是真實(shí)的原子操作
可以通過(guò)WebDAV/DeltaV協(xié)議選擇Apache作為網(wǎng)絡(luò )服務(wù)器
可以選擇獨立服務(wù)器模式
分支和標簽是代價(jià)低廉(固定不變的)的操作
本地化的客戶(hù)端/服務(wù)器,分層的庫設計
客戶(hù)端/服務(wù)器雙向傳輸區別的協(xié)議
消耗和修改部分的大小成比例,而不是數據的大小
可以選擇數據庫和純文件的版本庫實(shí)現
對象鏈接的版本化
處理二進(jìn)制文件的高效性
可解析的輸出
本地化信息
服務(wù)端有提供方式,通過(guò)svnserve是一種,svnserve是一個(gè)小型的服務(wù)端,可以同客戶(hù)端在TCP/IP基礎上的自定義有狀態(tài)協(xié)議通訊,客戶(hù)端通過(guò)使用開(kāi)頭為svn://或者svn+ssh://svnserve的URL來(lái)訪(fǎng)問(wèn)一個(gè)svnserve服務(wù)。用svnserve的話(huà)比較容易和系統賬號整合,可以通過(guò)ssh驗證來(lái)驗證權限,例如
直接連
svn list svn://host.example.com/project1
ssh
svn list svn+ssh://host.example.com/repos/project
配置通過(guò)apache來(lái)驗證和訪(fǎng)問(wèn)有個(gè)好處就是繞過(guò)防火墻,一般對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,因為Subversion的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è)倉庫,隨便導入個(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>恩,配置部分就好了,還差驗證文件
[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)系客服