项目要在本地建一个svn服务器,以前知识用用svn。没有架设过,试了一下,挺简单的东西。顺便整理了写东西

关键是几个配置文件的设置及其意义。

Windows下搭建svn服务器

 

1.下载文件

 

下载最新版本subversion,我这里选择

下载 "Subversion Windows Service" 软件包

下载 TortoiseSVN shell integration utility

下载 客户端中文语言包

 

2.安装Subversion 服务器

下载的zip包的安装,解压就可以。

 

首先创建SVN储存库(repository)

 

svnadmin create F:\lava\svn\

repository创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部 数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;

 

也可以使用那个界面的形式来创建版本库

 

3.配置SVN服务器

注配置文件详解:

1) svnserve配置文件概述

 

    svnserve配置文件通常由以下3个文本文件组成:

    svn服务配置文件,该文件版本库目录的conf目录下,文件名为svnserve.conf。

    用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的passwd。

    权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的authz。

 

2) svn服务配置文件

 

    svn服务配置文件为版本库目录中的文件conf/svnserve.conf。该文件仅由一个[general]配置段组成。

 

    [general]配置段中配置行格式如下:

        <配置项> = <值>

 

    配置项分为以下5项:

   

    anon-access  控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。

                 即"write"为可读可写,"read"为只读,"none"表示无访问权限。

                 缺省值:read

 

    auth-access  控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。

                 即"write"为可读可写,"read"为只读,"none"表示无访问权限。

                 缺省值:write

 

    password-db  指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf

                 目录的相对路径。

                 缺省值:passwd

 

    authz-db     指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

                 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。

                 缺省值:authz

 

    realm        指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的

                 认证域相同,建议使用相同的用户名口令数据文件。

                 缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)。

 

    【说明】版本库认证域

    在使用svn客户端访问svnserve服务器时,若需要用户登录,则提示信息如下:

        [root@test root]# svn list svn://192.168.3.45/test

        Authentication realm: <svn://192.168.3.45:3690> 0d545a49-4038-0410-99b4-c66dc73f754e

        Password for 'root':

    在上述第2行"Authentication realm: <svn://192.168.3.45:3690>"之后显示的字符串为认证域名称。如果在配置文件中为设定认证域,就会提示一个UUID,如上述所示。

    如果在配置文件中指定了如下配置项:

        realm = test

    将在svn客户端提示如下:

        [root@test root]# svn list svn://192.168.3.45/test

        Authentication realm: <svn://192.168.3.45:3690> test

        Password for 'root':

 

    例1:svn服务配置文件conf/svnserve.conf的内容如下:

        [general]

        anon-access = none

        auth-access = write

        password-db = ../../conf/passwd

        authz-db = ../../conf/authz

        realm = test

   

    上述配置文件设定非鉴权用户无权限访问该版本库;鉴权用户可对版本库进行读写;用户名口令文件为相对版本库conf目录的文件"../../conf/passwd";权限配置文件为相对版本库conf目录的文件"../../conf/authz";版本库的认证域为"test"。

 

3) 用户名口令文件

 

    用户名口令文件由svnserve.conf的配置项password-db指定,缺省为conf目录中的passwd。该文件仅由一个[users]配置段组成。

 

    [users]配置段的配置行格式如下:

        <用户名> = <口令>

    注意:配置行中的口令为未经过任何处理的明文。

 

    例2:用户名口令文件conf/passwd的内容如下:

        [users]

        admin = admin

        thinker = 123456

       

        该文件中配置了两个用户,用户名分别为"admin"和"thinker"。其中"admin"用户的口令为"admin";"thinker"用户的口令为"123456"。