zoukankan      html  css  js  c++  java
  • linux 搭建svn服务器

    1 安装SVN

    官网下载:http://subversion.apache.org/packages.html

    SVN客户端:TortoiseSVN,官网下载:http://tortoisesvn.net/downloads.html

    # yum install subversion

    1.       新建一个目录用于存储SVN所有文件

    # mkdir /svn

    2.       新建一个资源仓库

    # svnadmin create /svn/project

    # ls /svn/project/

    conf  db  format  hooks  locks  README.txt

    目录用途说明:

    l  hooks目录:放置hook脚本文件的目录

    l  locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

    l  format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号

    l  conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)

    3.       配置svn服务的配置文件svnserver.conf文件

    # vi /svn/project/conf/svnserve.conf

    [general]

    anon-access = none

    auth-access = write

    password-db = /svn/project/conf/passwd

    authz-db = /svn/project/conf/authz

    realm = My Test Repository         #这是个提示信息

    保存

    4.       添加两个访问用户及口令

    # vi /svn/project/conf/passwd

    [users]

    xiaoran.shen = 123456

    test1 = 123456

    test2 = 123456

    保存

    注意:对用户配置文件的修改立即生效,不必重启svn服务。 

    5.       配置新用户的授权文件

    # vi /svn/project/conf/authz

    [groups]

    admin = xiaoran.shen,test1

    user = test2

    [/]

    @admin = rw

    @user = r

    * =

    保存

    格式说明:

    版本库目录格式: 

    [<版本库>:/项目/目录] 

    @<用户组名> = <权限> 

    <用户名> = <权限>

    / 表示对根目录(即/svn/project目录)下的所有子目录范围设置权限;

    [/abc] 表示对资料库中abc项目设置权限;

    创建一个admin组,组成员包括xiaoran.shen和test1

    创建一个user组,成员只有test2;

    admin组对目录有读写权限;

    单个用户test2有读写权限;

    *=表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上。

    注意:对权限配置文件的修改立即生效,不必重启svn。 

    6.       启动svn服务

    svnserve -d -r /svn/project/

    注意:不要使用系统提供的 /etc/init.d/svnserve start 来启动,因为系统默认的启动脚本中没有使用 –r /svn/project参数指定一个资源。这种情况下启动的svn服务,客户端连接会提示“svn: No repository found in 'svn://192.168.11.229/project' ”这样的错误。

    默认svn服务器端口是3690。

    杀死svn服务:

    # ps -ef|grep svn

    root      4642     1  0 16:08 ?        00:00:00 svnserve -d -r /svn/project/

    root      4692  3676  0 16:13 pts/2    00:00:00 grep svn

    # kill -9 4642

    若要使用/etc/init.d/svnserve 脚本,可以修改start()函数部分,如下:

    start() {

        [ -x $exec ] || exit 5

        [ -f $config ] || exit 6

        echo -n $"Starting $prog: "

        daemon --pidfile=${pidfile} $exec $args -r /svn/project

        retval=$?

        echo

        [ $retval -eq 0 ] && touch $lockfile

        return $retval

    }

    完成 

    2          使用客户端连接

    2.1       使用windows的客户端

    打开TortoiseSVN Repository Browser工具

    在URL中输入:

    svn://192.168.11.229回车,提示输入用户名和口令

    2.2       使用Linux下的命令行

    # svn co svn://192.168.11.229

    3          FAQ

    3.1       命令行方式连接,提示svn: No repository found in 'svn://192.168.11.229/project'错误?

    解决:启动svn服务的时候没有使用-r /svn/project参数,没有指明资源库的具体路径。使用# svnserve -d -r /svn/project/ 命令来启动就可以了,不要使用/etc/init.d/svnserver脚本。

    3.2       执行命令# svn co svn://192.168.11.229/project时提示“svn: Authorization failed”错误?

    解决:一般这种授权失败的错误原因都来自conf/authz文件的配置

    正确的配置如下:

    [groups]

    admin = xiaoran.shen,test1

    user = test2

    [/]

    @admin = rw

    @user = rw

    * =

    保存

  • 相关阅读:
    HDU4474 Yet Another Multiple Problem BFS搜索
    HDU4473 Exam 数学分析
    2013ACM多校联合(4)
    POJ1273 网络流...
    HDU4472 Count 递推
    POJ1149 PIGS 网络流
    UVA10881 Piotr's Ants 想法题
    javascript js string.Format()收集
    修改 设置 vs.net 网站 调试 设为 起始页
    【转】HTML5杂谈 概念与现行游戏 割绳子 宝石迷阵
  • 原文地址:https://www.cnblogs.com/bieanju/p/5836105.html
Copyright © 2011-2022 走看看