svn簡要介紹及服務搭建

簡介

svn是一個跨平臺的版本控制系統,它管理着隨時間改變的各類數據,這些數據都是保存在中央資料檔案庫中的;svn會備份並記錄每一個文件的修改更新變更,這樣就能夠很方便地將文件恢復到任一時間點的版本。vim

安裝配置Svn服務

準備操做系統並查看系統環境

➜  ~  cat /etc/redhat-release 
CentOS release 5.10 (Final)
➜  ~  uname -m
x86_64
➜  ~  uname -r
2.6.18-371.11.1.el5

安裝svn

首先檢查svn是否已安裝:bash

➜  ~  rpm -qa subversion
subversion-1.6.11-12.el5_10
subversion-1.6.11-12.el5_10

若未安裝則執行如下命令:

➜  ~  yum -y install subversion

配置並啓動svn

創建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)

svn相關操做

創建項目版本庫

以建立項目sadoc爲例:操作系統

➜  ~  svnadmin create /application/svndata/sadoc

調整svn配置文件及權限文件

配置容許用戶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

注意:

  1. 等號前爲svn帳號,等號後爲svn密碼,密碼是明文的,要注意密碼權限

  2. 更改svnserver.conf後須要重啓svn,更改authz或passwd文件後則無需重啓svn

編輯配置authz文件,在[groups]下添加相關信息:

[sadoc:/]
andy = rw

注意:

  1. 權限配置文件中出現的用戶名必須已在用戶配置文件中定義

  2. 對權限配置文件的修改當即生效,沒必要重啓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
相關文章
相關標籤/搜索