美文网首页
SVN 服务器仓库搭建

SVN 服务器仓库搭建

作者: Zoulf | 来源:发表于2018-08-20 08:52 被阅读0次

    开始之前,首先需要明白一个概念——版本库。版本库是用于版本管理的,里面包含了目录锁、hook、数据仓库的信息(即文件目录结构和文件数据)、基本的配置信息等。即他不是真正的工作目录,配置好相关信息后也无需对他进行多余操作。

    svn 下载什么的就不多说了。

    一、 创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

    mkdir /opt/work/svn

    二、启动 SVN 服务器

    svnserve -d -r /var/svn/svnrepos
    

    若端口已被占用,则使用:

    svnserve -d -r /var/svn/svnrepos --listen-port 端口号
    

    二、创建svn版本库

    svnadmin create /var/svn/svnrepos/具体项目名

    进入 xxx 目录,可以看到如下结构:

    conf目录存放配置信息;
    
    db目录就是所有版本控制的数据文件;
    
    hooks目录放置hook脚本文件的目录;
    
    locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;
    
    format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;
    

    我们需要关注的主要是 conf/,其中conf/是配置文件的目录。

    三、修改配置

    进入 conf 目录:

    各个文件意义:

    authz:负责账号权限的管理,控制账号是否读写权限
    
    passwd:负责账号和密码的用户名单管理
    
    svnserve.conf:svn服务器配置文件
    

    针对各文件的修改:

    1. passwd:
    账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:
    
    账号 = 密码
    
    例如:admin = 123456
    
    1. authz
    在末尾添加
    [\]
    账号1 = rw
    账号2 = rw
    ...
    

    rw 表示赋予此账号可读写权限

    1. svnserve.conf
    原始文件内容,都被注释掉的,我们只需要去掉4条指定内容前注释即可,如下:
    [general]
    ### These options control access to the repository for unauthenticated
    ### and authenticated users.  Valid values are "write", "read",
    ### and "none".  The sample settings below are the defaults.
    anon-access = read
    auth-access = write
    ### The password-db option controls the location of the password
    ### database file.  Unless you specify a path starting with a /,
    ### the file's location is relative to the directory containing
    ### this configuration file.
    ### If SASL is enabled (see below), this file will NOT be used.
    ### Uncomment the line below to use the default password file.
    password-db = passwd
    ### The authz-db option controls the location of the authorization
    ### rules for path-based access control.  Unless you specify a path
    ### starting with a /, the file's location is relative to the the
    ### directory containing this file.  If you don't specify an
    ### authz-db, no path-based access control is done.
    ### Uncomment the line below to use the default authorization file.
    authz-db = authz
    ### This option specifies the authentication realm of the repository.
    ...
    

    四、防火墙开启

    多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题,大家按照如下3条命令逐一执行即可

    > /sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
    
    > /etc/init.d/iptables save
    
    > service iptables restart
    

    六、客户端访问svn服务器

    若使用的window下的TortoiseSVN,则直接在checkout中输入:

    svn://ip地址:3690/具体项目名   (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
    

    若使用的为Linux,则:

    svn checkout svn://ip地址:3690/xxxx 
    

    关于SVN仓库,先checkout,然后在提交

    1、checkout时,提示:URL svn://192.168.1.99/svntest doesn't exist...
    奇怪,怎么会提示库不存在呢?肯定是哪里配置问题。后来尝试了半天,也在网上搜索了很久,终于发现问题所在。

    如果你的svn库的路径为:/opt/work/Ops_old/Ops_old_svn

    那么你启动时,不能用命令:

    svnserve -d -r /opt/work/Ops_old/Ops_old_svn --listen-port 3693
    

    而要用命令:

    svnserve -d -r /opt/work/Ops_old --listen-port 3693
    

    而取则用:

    svn checkout svn://192.168.2.168:3692/Ops_old_svn
    

    相关文章

      网友评论

          本文标题:SVN 服务器仓库搭建

          本文链接:https://www.haomeiwen.com/subject/ygivbftx.html