環境介紹:
操作系統:CentOS release 6.5 (Final) 64位
網絡環境:內網
1 配置SVN
1.1 安裝SVN組件包
使用yum安裝svn所需的組件包
# yum –y install subversion
1.2 配置SVN
1.2.1 創建svn庫路徑
創建svn庫路徑,該目錄後期提供用戶文件寫入和讀取。
# mkdir -p /date/svn/
1.2.2 創建SVN版本庫
使用特定的命令來創建版本庫,創建成功後該目錄會出現SVN配置文件。
# svnadmin create /date/svn/
1.2.3 定義配置文件
#vim /opt/svndata/repos1/conf/svnserve.conf
[general] anon-access = none auth-access = write password-db = passwd #定義用戶密碼的配置文件 authz-db = authz #定義用戶權限的配置文件 realm = svn
1.2.4 用戶權限配置
1、創建svn訪問用戶
#vim /data/svn/passwd
[users] test = test 創建了一個叫tset密碼爲test的用戶
2、配置用戶訪問權限
#vi /opt/svndata/repos1/conf/authz
[groups] admin = test # harry_and_sally = harry,sally [/] @admin = rw [repos1:/abc/aaa] @admin = r
版本庫目錄格式:
[<版本庫>:/項目/目錄] #是以項目名作爲第一個單位。試想肯定是以項目爲單元的
@<用戶組名> = <權限>
<用戶名> = <權限>
其中,方框號內部分可以有多種寫法:
/,表示根目錄及以下。根目錄是svnserve啓動時指定的,我們指定爲/opt/svndata。這樣,/就是表示對全部版本庫設置權限。
repos1:/,表示對版本庫1設置權限
repos2:/abc, ,表示對版本庫2中的abc項目設置權限
repos2:/abc/aaa, ,表示對版本庫2中的abc項目的aaa目錄設置權限
權限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權限可以是w、r、wr和空,空表示沒有任何權限。
1.2.5 啓動SVN
# svnserve -d -r /date/svn/
-d表示以daemon方式(後臺運行)運行
-r /date/svn指定根目錄是/date/svn
1.3 配置鉤子
1.3.1 配置版本檢測工具
自己利用python寫了一個自動檢測庫裏面文件版本的工具。代碼如下:
# vim /date/svn/hooks/gouzi.py #!/usr/bin/env python if __name__=='__main__': importsys,string try: logfile= open('/tmp/python.out','a+') logfile.write("this is python hook") logfile.close() except: exit(1) sys.exit(0)
此工具需放在庫目錄中的hooks目錄中。
1.3.2 配置UPDATE腳本
1、首先在客戶端上手工checkout一次
# svn checkout svn://192.168.21.28/repos
2、編輯自動同步腳本
# vim svn_update.sh
代碼如下
#!/bin/bash /usr/bin/svn update /linshi/repos --username test --password test if [ $? == 0 ] then echo "ok" >> /tmp/z.out fi
其中:/linshi/爲存放目錄(看環境而定)
--username test 用戶名爲test
--password test 密碼爲test
3、修改權限
# chmod +x /root/svn_update.sh
4、配置計劃任務
因腳本無法實現自動執行,故配置計劃任務設置每分鐘執行一次。
# crontab -e * * * * /root/svn_update.sh > /dev/null 2>&1
-----------小歡原創