轉自 http://xiayong.blog.51cto.com/6292420/1088790
Mac系統已經自帶了svn,我們已經不需要安裝svn服務器了,簡單的幾步配置就可以開啟我們的svn服務器了。
1、打開terminal,可以使用如下命令確定我們的Mac OS系統確實已經安裝了svnserve。
machost:~ xiayong$ 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、創建倉庫
新建一個目錄
machost:~ xiayong$ sudo mkdir -p /data/svn/repositories/local
這個/data/svn/repositories/local目錄將用來作為我們的倉庫。
創建倉庫
machost:~ xiayong$ sudo svnadmin create /data/svn/repositories/local
倉庫創建成功后,我們可以到倉庫下面看一下,svnadmin自動幫我生成了倉庫。
machost:~ xiayong$ cd /data/svn/repositories/local/
machost:local xiayong$ 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文件,內容如下
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
接下來修改conf下的passwd文件,在[users]后面加入一下內容
administrator = admin@Svnserver
xiayong = xiayong
這里添加了兩個用戶,并分別設置了密碼
接下來修改conf下的authz文件,設置權限
[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
machost:conf xiayong$ sudo svnserve -d -r /data/svn/repositories
Ok,svn默認使用3690端口,如果端口不沖突,svn服務應該就正常起來了,簡單的測試一下
machost:conf xiayong$ 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、創建默認目錄結構(可選)
接下來我們創建默認目錄結構。首先我們在本地把目錄結構建立好
machost:conf xiayong$ sudo mkdir -p /tmp/svntemp
machost:conf xiayong$ cd /tmp/svntemp/
machost:svntemp xiayong$ sudo mkdir tags trunk branches
machost:svntemp xiayong$
接下來將本地目錄結構倒入到我們的svn倉庫中
machost:svntemp xiayong$ 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這個倉庫,當然不要忘記了,我們剛才新添加了目錄,需要修改權限。
[local:/branches]
@user = rw
[local:/tags]
@user = r
[local:/trunk]
@user = rw
6、讓SVN服務隨操作系統啟動(可選)
查看svn內存使用情況
svn在空閑時候才占了420k的內存而已,所以我決定讓svn隨Mac系統一起啟動,編輯/etc/rc.local文件,在這個文件中加入以下內容(此文件在Mac系統中是沒有的,需要手動創建)
to run the svnserver on the automatically.
svnserve -d -r /data/svn/repositories
本文出自 “xiayong” 博客,請務必保留此出處http://xiayong.blog.51cto.com/6292420/1088790