Mac OS X上搭建本地SVN服務器

原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://xiayong.blog.51cto.com/6292420/1088790

閒來無事,自己在Mac系統上搭建了一個svn服務器,跟大家分享一下。

Mac系統已經自帶了svn,我們已經不需要安裝svn服務器了,簡單的幾步配置就可以開啓我們的svn服務器了。

1、打開terminal,可以使用如下命令確定我們的Mac OS系統確實已經安裝了svnserve。

1
2
3
4
5
6
7
8
$ svnserve --version
svnserve, version 1.6.18 (r1303927)
   compiled Aug  4 2012, 19:46:53
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.

2、創建倉庫

新建一個目錄

1
sudo mkdir -p /data/svn/repositories/local

這個/data/svn/repositories/local目錄將用來作爲我們的倉庫。

創建倉庫

1
sudo svnadmin create /data/svn/repositories/local

倉庫創建成功後,我們可以到倉庫下面看一下,svnadmin自動幫我生成了倉庫。

1
2
3
4
5
6
7
8
9
cd /data/svn/repositories/local/
$ ll
total 16
-rw-r--r--   1 root  wheel  229 12 14 01:33 README.txt
drwxr-xr-x   5 root  wheel  170 12 14 01:41 conf
drwxr-sr-x  16 root  wheel  544 12 14 02:07 db
-r--r--r--   1 root  wheel    2 12 14 01:33 format
drwxr-xr-x  11 root  wheel  374 12 14 01:33 hooks
drwxr-xr-x   4 root  wheel  136 12 14 01:33 locks

3、配置

首先修改conf文件夾下的svnserve.conf文件,內容如下

1
2
3
4
5
6
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
[sasl]

接下來修改conf下的passwd文件,在[users]後面加入一下內容

1
2
administrator = admin@Svnserver
xiayong = xiayong

這裏添加了兩個用戶,並分別設置了密碼

接下來修改conf下的authz文件,設置權限

1
2
3
4
5
6
7
8
9
[groups]
admin = administrator
user = xiayong
[/]
@admin = rw
@user = r
[local:/]
@admin = rw
@user = r

簡單解釋一下這個配置,首先定義了兩個組,admin 和 user ,admin這個組裏面有administrator這個用戶(一個組裏面可以有多個用戶,多個用戶用逗號隔開),user這個組裏面有xiayong這個用戶,當然不是一定要把用戶歸到某個組裏面, 我這麼做是爲了方便設置權限。然後設置了根目錄的權限,要說明一下這個 / 目錄是指我的/data/svn/repositories/目錄。然後設置了我的local這個倉庫的根目錄權限,r是讀,w是寫。權限設置大家可以根據自己的情況設置,這裏不多說,繼續往下。

最基本的配置到這裏就結束了,我們可以啓動我們的svn服務器了

4、啓動SVN

1
sudo svnserve -d -r /data/svn/repositories --log-file=/var/log/svn.log

Ok,svn默認使用3690端口,如果端口不衝突,svn服務應該就正常起來了,簡單的測試一下

1
2
3
4
5
6
7
$ telnet localhost 3690
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) )


5、創建默認目錄結構(可選)

接下來我們創建默認目錄結構。首先我們在本地把目錄結構建立好

1
2
3
4
sudo mkdir -p /tmp/svntemp
cd /tmp/svntemp/
sudo mkdir tags trunk branches
$

接下來將本地目錄結構倒入到我們的svn倉庫中

1
2
3
4
5
6
7
8
9
10
sudo svn import -m 'init repo' /tmp/svntemp/ svn://localhost/local
Authentication realm: <svn://localhost:3690> af662c40-23bf-43f4-93fa-8bf7eff40771
Password for 'root':
Authentication realm: <svn://localhost:3690> af662c40-23bf-43f4-93fa-8bf7eff40771
Username: administrator
Password for 'administrator':
Adding         /tmp/svntemp/trunk
Adding         /tmp/svntemp/branches
Adding         /tmp/svntemp/tags
Committed revision 1.

我是使用administrator這個用戶導入的,因爲目前只有這個用戶纔有權限。


現在我們的svn服務器已經可以用了,可以使用svn://localhost/local來訪問我們的local這個倉庫,當然不要忘記了,我們剛纔新添加了目錄,需要修改權限。

1
2
3
4
5
6
[local:/branches]
@user = rw
[local:/tags]
@user = r
[local:/trunk]
@user = rw

6、讓SVN服務隨操作系統啓動(可選)

查看svn內存使用情況

032837976.png

svn在空閒時候才佔了420k的內存而已,所以我決定讓svn隨Mac系統一起啓動,編輯/etc/rc.local文件,在這個文件中加入以下內容(此文件在Mac系統中是沒有的,需要手動創建)

1
2
# to run the svnserver on the automatically.
svnserve -d -r /data/svn/repositories


本文出自 “xiayong” 博客,請務必保留此出處http://xiayong.blog.51cto.com/6292420/1088790

發佈了42 篇原創文章 · 獲贊 69 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章