Subversion 是一個優(yōu)秀的版本控制工具,絲毫不遜色于cvs,他的主要特性
保留大多數(shù)CVS 特性
目錄、重命名和文件meta-data都已經(jīng)版本化
提交是真實的原子操作
可以通過WebDAV/DeltaV協(xié)議選擇Apache作為網(wǎng)絡服務器
可以選擇獨立服務器模式
分支和標簽是代價低廉(固定不變的)的操作
本地化的客戶端/服務器,分層的庫設計
客戶端/服務器雙向傳輸區(qū)別的協(xié)議
消耗和修改部分的大小成比例,而不是數(shù)據(jù)的大小
可以選擇數(shù)據(jù)庫和純文件的版本庫實現(xiàn)
對象鏈接的版本化
處理二進制文件的高效性
可解析的輸出
本地化信息
服務端有提供方式,通過svnserve是一種,svnserve是一個小型的服務端,可以同客戶端在TCP/IP基礎上的自定義有狀態(tài)協(xié)議通訊,客戶端通過使用開頭為svn://或者svn+ssh://svnserve的URL來訪問一個svnserve服務。用svnserve的話比較容易和系統(tǒng)賬號整合,可以通過ssh驗證來驗證權限,例如
直接連
svn list svn://host./project1
ssh
svn list svn+ssh://host./repos/project
配置通過apache來驗證和訪問有個好處就是繞過防火墻,一般對80是不會有什么防火墻限制的,省卻了不少的麻煩
可以這樣
svn list http://host./repos1
如果有https支持就可以
svn list https://host./repos1
可以看 http://www./
具體的各個軟件的安裝就不講了,apache2 svn,需要注意的是,一定要apache2,因為Subversion的Apache模塊只是為Apache 2 API寫的。。
開動,在apache的配置文件中加載模塊
使用LoadModule來加載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,而沒有說mod_authz_svn.so,害我在apache里面配置來配置去死活不行。
下一步,先創(chuàng)建一個倉庫,隨便導入個工程
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就可以輸入密碼登陸了