svn是一個跨平臺的版本控制系統,它管理着隨時間改變的各類數據,這些數據都是保存在中央資料檔案庫中的;svn會備份並記錄每一個文件的修改更新變更,這樣就能夠很方便地將文件恢復到任一時間點的版本。vim
➜ ~ cat /etc/redhat-release CentOS release 5.10 (Final) ➜ ~ uname -m x86_64 ➜ ~ uname -r 2.6.18-371.11.1.el5
首先檢查svn是否已安裝:bash
➜ ~ rpm -qa subversion subversion-1.6.11-12.el5_10 subversion-1.6.11-12.el5_10
➜ ~ yum -y install subversion
創建svn數據存儲根目錄(svndata)及用戶、密碼、權限目錄(svnpasswd)app
➜ ~ mkdir -p /application/svndata ➜ ~ mkdir -p /application/svnpasswd
啓動svntcp
➜ ~ svnserve -d -r /application/svndata
查看svn是否啓動svn
➜ ~ ps -ef|grep svn root 16969 1 0 13:38 ? 00:00:00 svnserve -d -r /application/svndata ➜ ~ netstat -lntup | grep 3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 16969/svnserve ➜ ~ lsof -i :3690 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME svnserve 16969 root 3u IPv4 147101 0t0 TCP *:svn (LISTEN)
以建立項目sadoc爲例:操作系統
➜ ~ svnadmin create /application/svndata/sadoc
配置容許用戶andy讀寫訪問版本控制
➜ ~ cd /application/svndata/sadoc/conf ➜ conf cp svnserve.conf svnserve.conf.bak ➜ conf vim svnserve.conf
修改以下內容:code
anon-access = none <--是否容許匿名訪問 auth-access = write <--訪問權限 password-db = /application/svnpasswd/passwd <--此處通常無需修改,保持默認便可;在此爲了方便統一管理因而作了相應修改 authz-db = /application/svnpasswd/authz
查看修改的內容:server
➜ conf diff svnserve.conf.bak svnserve.conf
將密碼認證文件模板拷貝到svnpasswd目錄下it
➜ conf cp authz passwd /application/svnpasswd
修改文件權限:
➜ conf cd /application/svnpasswd ➜ svnpasswd chmod 700 *
編輯配置passwd文件,在[users]下添加相關信息:
andy = andy123
注意:
等號前爲svn帳號,等號後爲svn密碼,密碼是明文的,要注意密碼權限
更改svnserver.conf後須要重啓svn,更改authz或passwd文件後則無需重啓svn
編輯配置authz文件,在[groups]下添加相關信息:
[sadoc:/] andy = rw
注意:
權限配置文件中出現的用戶名必須已在用戶配置文件中定義
對權限配置文件的修改當即生效,沒必要重啓svn
格式說明:
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe 一個用戶組能夠包含一個或多個用戶,用戶間以逗號分隔。 # [repository:/baz/fuz] # @harry_and_sally = rw # * = r [sadoc:/] andy = rw [<版本庫>:/項目/目錄] @<用戶組名>=<權限> <用戶名>=<權限> 其中方框內部能夠有多種寫法: [/]表示根目錄及如下,根目錄是svnserve啓動時指定的,咱們指定爲/application/svndata,[/]就是表示對所有版本庫設置權限 [repos:/]表示對版本庫repos設置權限 [repos:/sadoc]表示對版本庫repos中的sadoc項目設置權限 [repos:/sadoc/andy]表示對版本庫repos中的sadoc項目的andy目錄設置權限 權限主體能夠是用戶組、用戶或*,用戶組在前面加@,*表示所有用戶 權限能夠是w、r、wr和空,空表示無任何權限 authz中每一個參數都要頂格寫,開頭不能有空格
重啓svn
➜ svnpasswd pkill svnserve ➜ svnpasswd svnserve -d -r /application/svndata