SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它采用了分支管理系統,它的設計目標就是取代CVS。互聯網上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的。
在CentOS平台下,輸入
yum install -y subversion
安裝完成後,可以用下面的命令查看是否安裝成功
svnserve --version
創建SVN版本庫
首先創建一個文件夾,用以存放多個項目的版本庫。
mkdir /work/svn
然後在這裡邊創建我們的第一個svn版本庫
cd /work/svn
svnadmin create hello
這時,我們會在/work/svn目錄下發現一個hello文件夾,hello項目的所有數據和配置文件就放在這裡。
配置
hello/conf/文件夾下有三個配置文件,分別是authz、passwd和svnserve.conf。
其中,
authz用以配置權限,例如svn的各個用戶對於hello這項目分別擁有什麼權限(只讀、讀寫等)。 passwd存放了svn用戶的用戶名和密碼。 svnserve.conf是svn服務的配置文件。
svnserve.conf文件中有5個配置項需要配置,
anon-access: 控制非鑒權用戶訪問版本庫的權限。 auth-access: 控制鑒權用戶訪問版本庫的權限。 password-db: 指定用戶名口令文件名。 authz-db:指定權限配置文件名,通過該文件可以實現以路徑為基礎的訪問控制。 realm:指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數據文件
配置示例
step1. 在passwd配置文件中添加一個用戶,也就是在文件的末尾添加
user = password123456
這樣我們就給項目hello添加了一個用戶名為user的用戶,密碼是password123456
step2. 在authz配置文件中給user用戶添加權限,也就是在文件的末尾添加
[groups] #這一行不用寫,文件末尾有,並且沒被注釋掉
admin=user
[hello:/]
@admin=rw
其中hello是項目的名稱,/表示可以操作的文件路徑(可以指定為某個文件夾,例如/doc,就表示緊接著的用戶只能對doc文件夾做操作)。
@admin表示admin用戶組,admin用戶組的成員是user,rw表示admin用戶組的成員對當前文件夾可讀可寫。
step3. 修改svnserve.conf配置文件
將如下5行前面的注釋符號去掉。
# 匿名登錄的用戶沒有任何權限
anon-access=none
# 登錄用戶最高有寫權限
auth-access-write
# 密碼配置文件,一般不需要修改
passwrd-db=passwd
# 權限配置文件,一般不需要修改
authz-db=authz
# 設置為svn版本庫的名稱
realm=hello
啟動和停止svn服務
啟動svn服務
svnserve -d -r /work/svn
可以svn服務設置為開機自動啟,在/etc/rc.local文件的末尾添加上述命令。
停止svn服務
一般通過kill殺掉停止
ps -ef | grep svn
kill -9 進程編號
在windows上通過TortoiseSVN訪問svn服務器
下載並安裝TortoiseSVN
在一個空文件中右鍵,SVN Checkout...
在URL of repository中填寫svn://SVN服務器IP地址/hello,點擊確定並輸入賬號密碼。