原文地址:http://www.shiranyu.com/?p=75
以前装过一次subversion,使用的是apache方式(相关文章:http://www.shiranyu.com/?p=62 ),这次因为服务器装apache不方便,所以再装一次不带apache方式的,只需要单独的subversion即可。
一、安装subversion
下载subversion:http://subversion.tigris.org/downloads/subversion-1.6.13.tar.gz
下载subversion的依赖包subversion-deps:http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.gz
tar -xzvf subversion-1.6.13.tar.gz
tar -xzvf subversion-deps-1.6.13.tar.gz
(两个包都会自动解压缩到文件夹subversion-1.6.13/)
cd subversion-1.6.13
./configure --prefix=/usr/local/subversion
make clean
make
make install
安装好之后,可以通过/usr/local/subversion/bin/svnserve –version命令查看是否安装成功。出现如下信息则是成功了:
svnserve, version 1.6.13 (r1002816) compiled Nov 4 2010, 23:13:09 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.tigris.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. Cyrus SASL authentication is available.
二、建立库文件
创建用户svnroot(最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来)
adduser svnroot
passwd svnroot
然后在svnroot用户下(su svnroot)运行以下命令:
cd /usr/local/subversion/ 1.创建文件夹 mkdir repository 2.创建版本库,指定数据存储为 FSFS bin/svnadmin create --fs-type fsfs /usr/local/subversion/repository/ 3.创建所需管理的项目的临时目录: mkdir tmp cd tmp/ mkdir trunk tags branches cd .. 然后将所需管理的项目文件复制到trunk目录下 4.导入刚创建的所需要管理的项目(tmp目录下的文件)到创建的版本库repository里面 bin/svn import tmp/ file:///usr/local/subversion/repository/ –m "first import" 提交后的修订版本为1。 5.修改版本库文件的权限 chmod 770 repository chmod -R g+w repository 三、用户管理
1.修改版本库repository的配置文件
cd /usr/local/subversion/repository/conf vim svnserve.conf
确保svnserve.conf文件里面有如下信息:
anon-access = none
auth-access = write
password-db =passwd
authz-db = authz
realm = repository
其他的不用修改
2.修改版本库repository的用户文件
vim passwd
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
必须有[users]这一行。下面再列出要访问svn的用户,每个用户一行,后面是密码。示例:
[users]
shiran = password1
shiranyu = password2
3.修改版本库repository的用户访问权限文件
vim authz
文件格式如下:
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
方括号 [] 内如果为 / 就表示是全部版本库。可以用 * 表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
repository = shiran,shiranyu //repository用户组下有shiran,shiranyu两个用户
[/] //此处表示全部版本库
@ repository = rw //此处表示repository用户组
[repository:/] //此处表示repository版本库下面的所有项目
shiran = rw
* = rw //此处表示所有用户具有rw权限
[repository:/project] //此处表示repository版本库下面的project项目
shiran = rw
[repository:/project/trunk] //此处表示repository版本库下面的project项目中的trunk文件夹
shiran = rw
四、启动与停止subversion
启动subversion:
/usr/local/subversion/bin/svnserve -d -r /usr/local/subversion/
-d表示以daemon方式运行(后台运行)
-r /usr/local/subversion/repository/指定根目录是/usr/local/subversion/
停止subversion:
找到svnserve的进程号
ps -ef | grep svnserve
再kill掉
kill "subversion的进程号"
PS:顺带记一下,subversion使用的端口是3690。
访问方式为:svn://xxxx(地址)/repository(访问repository库)