当前位置: > Linux服务器 > SVN >

Linux下svn的配置

时间:2015-02-08 00:24来源:linux.it.net.cn 作者:IT

1. 安装SVN

可以使用平台对应的安装包安装,也可以从源代码安装。安装完成之后可以用如下代码进行验证安装是否成功,可执行文件或者在/usr/bin 或者在/usr/local/bin (源代码安装)
svnserve –version

2. svn配置

建立svn版本库目录,可建多个:

mkdir -p /opt/svndata/repos1
svnadmin create /opt/svndata/repos1

修改svn版本库配置文件

vi /opt/svndata/repos1/conf/svnserve.conf
  1. [general]
  2. anon-access = none
  3. auth-access = write
  4. password-db = /opt/svn/conf/pwd.conf
  5. authz-db = /opt/svn/conf/authz.conf
  6. realm = repos1

配置允许访问的svn用户

vi /opt/svn/conf/pwd.conf
注意:对用户配置文件的修改立即生效,不必重启svn。
  1. [users]
  2. <用户1> = <密码1>
  3. <用户2> = <密码2>

配置svn用户访问权限

vi /opt/svn/conf/authz.conf
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。

用户组格式:
[groups]
= ,
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:
[:/项目/目录]
@ = 


其中,方框号内部分可以有多种写法:
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库设置权限。
repos1:/,表示对版本库1设置权限
repos2:/abc, ,表示对版本库2中的abc项目设置权限
repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

  1. [groups]
  2. admin = john
  3.  
  4. [/]
  5. @admin = rw
  6.  
  7. [repos1:/abc/aaa]
  8. jason = rw

3. 启动svn

经过step1),step2),服务已配置好,可以启动了

svnserve  --daemon  --root  /opt/svndata/
关于--root的使用请参看:http://svnbook.subversion.org.cn/1.2/svn.serverconfig.svnserve.html
文档中说 :如果一个版本库是位于/usr/local/repositories/project1,则一个客户端可以使用 svn://host.example.com/usr/local/repositories/project1 来进行访问
  
你可以使用svnserve的-r选项,这样会限制只输出指定路径下的版本库:  
$ svnserve -d -r /opt/svndata/
 
使用-r可以有效地改变文件系统的根位置,客户端可以使用去掉前半部分的路径,留下的要短一些的(更加有提示性)URL:
  
 $ svn checkout svn://host.example.com/project1 (责任编辑:IT)
------分隔线----------------------------