注:以下知識受老男孩老師指導
1:安裝配置svn服務
1.1 準備操作系統並查看系統環境
[root@qinlaozhifu1 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@qinlaozhifu1 ~]# uname -m 顯示電腦類型
x86_64
[root@qinlaozhifu1 ~]# uname -r 顯示操作系統的發行編號
2.6.32-573.22.1.el6.x86_64
1.2 安裝svn (subversion)
1.2.1 首先檢查svn軟件程序是否已安裝
[root@qinlaozhifu1 ~]# rpm -qa subversion
subversion-1.6.11-10.el6_5.x86_64
如果沒有以上結果需要
yum install -y subversion
如果需要保留這個軟件,本地不清除
[root@qinlaozhifu1 ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
[root@qinlaozhifu1 ~]# grep keepcache /etc/yum.conf
keepcache=1 //rpm包下載後不清除
1.2.1 配置並啓動svn
建立svn版本庫數據存儲根目錄(svndata)及用戶、密碼權限目錄(svnpasswd)
[root@qinlaozhifu1 ~]# mkdir -p /application/svndata 數據存儲的根目錄
[root@qinlaozhifu1 ~]# mkdir -p /application/svnpasswd 用戶及密碼的權限目錄
啓動svn服務指定服務的svn根目錄
[root@qinlaozhifu1 ~]# svnserve -d -r /application/svndata/
查看svn進程
[root@qinlaozhifu1 ~]# ps -ef|grep svn|grep -v grep
root 7657 1 0 13:52 ? 00:00:00 svnserve -d -r /application/svndata/
檢測svn端口
[root@qinlaozhifu1 ~]# netstat -lntup|grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 7657/svnserve
[root@qinlaozhifu1 ~]# netstat -lntup|grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 7657/svnserve
[root@qinlaozhifu1 ~]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 7657 root 3u IPv4 70547 0t0 TCP *:svn (LISTEN)
查看svnserver命令幫助,瞭解相關的啓動參數
[root@qinlaozhifu1 ~]# svnserve --help
Valid options:
-d [--daemon] : daemon mode 守護進程模式
-r [--root] ARG : root of directory to serve指定存儲的根目錄
--pid-file ARG : write server process ID to file ARG 存放進程號,
1.3 建立項目版本庫
創建一個新的subversion項目sadoc,其實,類似sadoc這樣的項目可以創建多個,沒個項目對應不同的代碼,這裏只是以創建一個項目爲例演示:
svnadmin --help 查看命令幫助
[root@qinlaozhifu1 ~]# svnadmin create /application/svndata/sadoc 在版本庫下面創建項目
[root@qinlaozhifu1 ~]# ll /application/svndata
total 4
drwxr-xr-x 6 root root 4096 Dec 25 14:03 sadoc
1.4調整svn配置文件及權限文件
[root@qinlaozhifu1 ~]# cd /application/svndata/sadoc/conf/
[root@qinlaozhifu1 conf]# ll
total 12
-rw-r--r-- 1 root root 1080 Dec 25 14:03 authz 權限的管理文件
-rw-r--r-- 1 root root 309 Dec 25 14:03 passwd 用戶和密碼文件
-rw-r--r-- 1 root root 2279 Dec 25 14:03 svnserve.conf 主配置文件(包含上面兩個文件)
[root@qinlaozhifu1 conf]# cp svnserve.conf svnserve.conf.ori 修改前備份
比較我們修改的內容
[root@qinlaozhifu1 conf]# diff svnserve.conf.ori svnserve.conf
12,13c12,13
< # anon-access = read
< # auth-access = write
> anon-access = none
> auth-access = write
20c20
< # password-db = passwd
> password-db = /application/svnpasswd/passwd
27c27
< # authz-db = authz
> authz-db = /application/svnpasswd/authz
修改以後查看一下
[root@qinlaozhifu1 conf]# egrep "\-access|\-db =" svnserve.conf
anon-access = none
auth-access = write
password-db = /application/svnpasswd/passwd
authz-db = /application/svnpasswd/authz
拷貝權限的管理文件、用戶和文件
[root@qinlaozhifu1 conf]# cp authz passwd /application/svnpasswd/
[root@qinlaozhifu1 conf]# ll /application/svnpasswd/
total 8
-rw-r--r-- 1 root root 1080 Dec 25 17:36 authz
-rw-r--r-- 1 root root 309 Dec 25 17:36 passwd
非root用戶看不到,提高安全性
[root@qinlaozhifu1 conf]# cd /application/svnpasswd/
[root@qinlaozhifu1 svnpasswd]# chmod 700 *
[root@qinlaozhifu1 svnpasswd]# ll
total 8
-rwx------ 1 root root 1080 Dec 25 17:36 authz
-rwx------ 1 root root 309 Dec 25 17:36 passwd
1.4.1配置用戶和密碼
[root@qinlaozhifu1 svnpasswd]# vim passwd
[users]
# harry = harryssecret
# sally = sallyssecret
oldboy = oldboy123
提示:
1:等號前爲svn賬號,等號後爲svn密碼,密碼是明文的,注意密碼權限。
2:更改svnserver.conf時,需要重啓svn,更改authz,passwd文件時不用重啓。
1.4.2 修改權限配置文件
[root@qinlaozhifu1 svnpasswd]# vim authz
sagroup = oldboy,wenyanchao
[sadoc:/]
@sagroup = rw
注意:
1:權限配置文件中出現的用戶名必須已在用戶配置文件中定義。
2:對權限配置文件的修改立即生效,不必重啓svn。
版本庫目錄格式:
定一個用戶組 = **** 用戶之間用逗號隔開
[<版本庫>:/項目/目錄]
@<用戶組名> = <權限>
1.5 重啓svn
[root@qinlaozhifu1 svnpasswd]# pkill svnserve
[root@qinlaozhifu1 svnpasswd]# svnserve -d -r /application/svndata/
最後的話就是安裝客戶端的TortoiseSVN,進入工作環境中應用