一 安裝SVN
sudo apt-get install subversion shell
二 用自動腳本配置SVN服務器 數據庫
SVN服務器的分爲以下幾步:
1 在ubuntu上建立SVN用戶及SVN用戶組
2 建立SVN根目錄及項目目錄
3 建立SVN數據倉庫
4 修改目錄權限
5 導入初始數據(可選)
6 配置SVN用戶權限
這下提供一個BASH腳本,能夠完成上面6步工做的前面5步。「配置SVN用戶權限」在下小節中將繼續說明: ubuntu
#!/bin/bash ################################### # V1.0 # 做用:完成,SVN數據庫的初始化工做,已經在Ubuntu上經過了測試 # 使用方法: 能夠直接在終端輸入 sudo init_svn_server.sh 來運行本腳本,若是 # 你想修改一些關鍵的設置 如用戶名什麼的,能夠在「關鍵變量定義」處修改 # 做者: Jackey77681571@126.com ################################### #關鍵變量定義 SVN_USER=svnuser SVN_GROUP=subversion SVN_ROOT=/home/svn PROJECT_DIR=svn_manager IS_IMPORT=FALSE #soruce file directory LOCAL_DIR=/home/daydayup/work/project/svnmanager/src/source RES_STR=`grep $SVN_USER /etc/passwd` #添加svn管理用戶及管理組 if [ -z "$RES_STR" ]; then echo "------------Add svn user-------------" sudo adduser "$SVN_USER" sudo addgroup "$SVN_GROUP" sudo addgroup "$SVN_USER" "$SVN_GROUP" else echo "The user:($SVN_USER), is exist." fi RES_STR=`grep $SVN_GROUP /etc/group` if [ -z "$RES_STR" ]; then echo "------------Add Group-------------" sudo addgroup "$SVN_GROUP" sudo addgroup "$SVN_USER" "$SVN_GROUP" else echo "The group:($SVN_GROUP), is exist." fi RES_STR=`grep "$SVN_GROUP:.*:$SVN_USER" /etc/group` if [ -z "$RES_STR" ]; then echo "------------Add user to group-------------" sudo addgroup "$SVN_USER" "$SVN_GROUP" else echo "The user:($SVN_USER), has been readly in group:($SVN_GROUP)." fi #建立項目目錄 if [ -d "$SVN_ROOT" ]; then echo "SVN Root:($SVN_ROOT), is exist." else echo "------------Create svn root directory!-------------" sudo mkdir "$SVN_ROOT" fi cd "$SVN_ROOT" if [ -d "$PROJECT_DIR" ]; then echo "Project:($PROJECT_DIR), is exist." else echo "------------Create svn project directory!-------------" sudo mkdir "$PROJECT_DIR" #建立SVN文件倉庫 echo "create:""$SVN_ROOT/$PROJECT_DIR" sudo svnadmin create "$SVN_ROOT/$PROJECT_DIR" sudo chown -R "root:$SVN_GROUP" "$PROJECT_DIR" sudo chmod -R g+rws "$PROJECT_DIR" fi if [ -d "$LOCAL_DIR" ]; then if [ "TRUE" == "$IS_IMPORT" ]; then #In the way the LOCAL_DIR will not become the work space. svn import -m "init import" "$LOCAL_DIR" "file://$SVN_ROOT/$PROJECT_DIR" else sudo svn co "file://$SVN_ROOT/$PROJECT_DIR" "$LOCAL_DIR" fi fi exit 0
三 配置權限文件
進入SVN項目目錄。上一小節的腳本所生的的項目目錄就是「/home/svn/svn_manager」.在項目目錄下有一個名爲「conf」的子目錄。對權置的設置工做,主要是修改該子目錄下的三個文件:
authz
passwd
svnserve.conf
svnserve.conf 主要用來設置用戶信息文件的文件名的及匿名訪問的權限。咱們打開 svnserve.conf 文件,後,一般首先要去「password-db = passwd」 及 「authz-db = authz」,這兩句前面的註釋便可(注意把空格也去掉)
password-db = passwd bash
做用就是把密碼信息文件指定爲同級目錄下的「passwd」文件,這也是默認就會成成的密碼文件。
authz-db = authz
這個是指定用信息信息文件,設定方法上面「password-db」差不一樣。
接着設置 鑑權用戶及非鑑權用戶的權限,一樣也是要去註釋:
anon-access = read
auth-access = write
不過咱們一般會改爲以下這樣
anon-access = none
auth-access = write
這樣非鑑權用戶就無任何的訪問權限了。 服務器
passwd文件主要用來設置用戶名與密碼的對應表。具體的設置方法能夠參看本文件中已經有的例子。
authz 文件設置用戶及用戶組的權限,還有操做的目錄。具體的設置方法能夠參看本文件中已經有的例子。 svn
四 設置virtualbox端口轉發
測試
看上圖你們應該已經知道設置的要點了,這裏只說明一下「子系統IP」就是在虛擬系統中查出的IP。能夠在終端中輸入「ifconfig」查詢。「主機端口」與「子系統端口」並不要求相同,只是我爲了方便記憶將其設置爲同樣罷了。 spa
五 啓動SVN服務
sudo svnserve -d -r [服務的根目錄] --listen-port [監聽的端口號]
-d [--daemon] : 後臺模式
-r [--root] ARG : 服務的根目錄
--listen-port ARG : 監聽端口
我是這樣啓動服務的: code
sudo svnserve -d -r /home/svn/ --listen-port 8036 server
六 checkout代碼
svn checkout svn://127.0.0.1:8036/svn_manager --username mysvnuser --password mypassword