Linux下搭建SVN服務器

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

發佈了49 篇原創文章 · 獲贊 4 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章