Subversion(SVN) 是一個開源的版本控制系統, 也就是說 Subversion 管理着隨時間改變的數據。 這些數據放置在一箇中央資料檔案庫 (repository) 中。 這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變動。 這樣你就可以把檔案恢復到舊的版本, 或是瀏覽文件的變動歷史。
1.Subversion的安裝
安裝:yum install subversion
版本校驗:svnserve --version
2.建立版本庫目錄
mkdir /opt/svndata
3.創建版本庫
svnadmin create /opt/svndata
[root@beasin ~]# ls /opt/svndata/
conf db format hooks locks README.txt
注意:版本庫不同於一般的文件夾, 直接在操作系統上新建文件無法被SVN識別, 必須使用import等命令將文件導入版本庫.此爲svn內部指令,create用於新建版本庫。請使用svn help查看詳細說明。
4.配置版本庫
進入版本庫目錄下的conf文件夾,該文件夾下有三個文件:
svnserve.conf:svn服務配置文件
passwd:用戶名口令文件
authz:權限配置文件
配置svn服務文件svnserve.conf
[general]
# 使非授權用戶無法訪問
anon-access = none
# 使授權用戶有寫權限
auth-access = write
# 指明密碼文件路徑
password-db = passwd
# 訪問控制文件
authz-db = authz
# 認證命名空間,subversion會在認證提示裏顯示,並且作爲憑證緩存的關鍵字。
realm = /opt/svndata/
其它採用默認配置,各語句都必須頂格寫,左側不能留空格,配置行不允許有註釋,否則會出錯。配置svn密碼文件passwd
[users]
#account = password
zhou = 123
game = 123
test =123
此爲用戶名密碼對。配置權限文件authz
# [groups]組配置格式
# group = acount1,acount2
# [根目錄名:/子目錄名]版本庫路徑配置
# 權限配置格式
# 用戶權限
# * = r
# acount =wr
# 組權限配置
# @group = wr
#未配置的代表無權限
#組配置
[groups]
deve = zhou,test
#版本庫跟路徑權限配置
[/]
test =r
@deve = wr
#跟路徑中proj路徑權限配置
[/proj/]
game = r
@deve = wr
注意,此處的proj目錄爲svn客戶端在版本庫中建立的目錄,並且commit的,服務器端是沒有實際的該目錄,因爲svn目錄和系統目錄不同,服務端有自己管理目錄的數據格式,不能手動在服務端建立,對於[/proj/]和[proj:/]是一樣的。
5.啓動svn服務
[root@beasin ~]# svnserve -d -r /opt/svndata/
指令簡介:此指令用於啓動svn服務,-d指明以守護模式運行,svn自動在3690端口監聽。3690是默認端口,可以使用“--listen-port=”或者“--listen-host=”來指定其它
端口。-r選項用來指定svn服務的根目錄,這樣用戶配置中就可以使用相對路徑訪問,而不用提供完整路徑。
6.檢查端口
[root@beasin ~]# netstat -ntlp|grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 15087/svnserve
注意在防火牆配置/etc/sysconfig/network/iptables中放行端口
7.其他指令
從服務端下載代碼:svn checkout svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code
提交更改:svn commit -m "修改了main.m文件"
更新代碼:svn update
其他指令幫助:svn help