zoukankan      html  css  js  c++  java
  • Ubuntu安装svn

    目录

    安装svn和创建版本库...…………..1

    用户权限管理... ………………………2

    启动SVN.. ………………………………3

    客户端访问...…………………………. 4

    附加:单版本库和多版本库的配置

    安装svn和创建版本库

    1、  安装:sudo apt-get  install subversion.            //安装的内容一般存放在/usr/bin/

    2、  检查安装是否成功:/usr/bin/svnserve --version

    以下已创建MCD项目版本库(单版本库)为例

    3、创建文件夹:mkdir –p /opt/src/repositories/          //存放版本库

    4、进入repositories目录:cd /opt/src/repositories/,创建MCD版本库

       a、创建文件夹 mkdir MCDRE,

       b、创建版本库并指定数据存储模式为FSFS:

    /usr/bin/svnadmin create --fs-type fsfs /opt/src/repositories/MCDRE/

       c、检查是否创建成功:ls  /opt/src/repositories/MCDRE/,显示以下内容创建成功

                conf  db  format  hooks  locks  README.txt

    5、创建项目临时目录:mkdir –p /opt/src/temps/MCD/{trunk,tags,branches}

    6、复制项目文件到trunk目录下:cp –r MCD /opt/src/temps/MCD/trunk/  //这一步可以忽略

    7、导入所需要的项目到版本库MCDRE中:

       /usr/bin/svn import /opt/src/temps/MCD/  file:///opt/src/reposiories/MCDRE/ -m “MCD repository” 

    8、检查是否导入成功:/usr/bin/svn list –verbose file:///opt/src/repositories/MCDRE/

    9、修改版本库文件权限:

    chmod 770 /opt/src/repositories/MCDRE

    chmod –R g+w /opt/src/repositories/MCDRE

    用户权限管理

    涉及的主要由三个文件:svnserve.conf、passswd、authz 

    //存放于/opt/src/repositories/MCDRE/conf/

    1、  Svnserve.conf: 版本库的配置文件;passwd: 允许访问版本库的用户文件;authz: 用户访问版本库的权限

    a、 修改svnserve.conf文件:vi /opt/src/repositories/MCDRE/conf/ svnserve.conf,该文件的内容包括(注意:每一行前面不能有空格,否则会出现Option expected错误):

    [general]

    #anon-access = none                   //设置是否允许匿名登录

    auth-access = write                     //设置用户密码登陆

    password-db = passwd                //指定passwd文件的位置

    authz-db = authz                        //指定authz文件的位置

    realm = repository

    [sasl]

    b、修改passwd文件:vi /opt/src/repositories/MCDRE/conf/ passwd,该文件的内容包括:

    [users]

     wshijun1=wshijun1                         //用户名=密码,每个用户一行

    wshijun2=wshijun2

    c、修改authz文件:vi /opt/src/repositories/MCDRE/conf/authz,该文件的内容包括:

             用户组格式:

    [groups]

    qianqiu=wshijun1,wshijun2//用户间以逗号分割

    版本库目录格式:

    [/]   

    @qianqiu=permissions  //用户组名=权限

    [/trunk/doc]   //指定该用户只能访问该目录

    Lwchuhao2=permissions  //用户名=权限

    []可以有多种定义 /表示对全部的版本库设置权限,repos1:/表示对repos1设置权限,repos2:/www表示对repos2中的www项目设置权限,repos2:/www/example.com表示对repos2中的www项目的example.com目录设置权限。(注:svn客户端访问时也许按照设置的路径进行访问,如:svn://192.168.0.9/trunk/doc)可以用*来表示所有用户。

    权限可以设置为w,r,wr和空,空表示没有任何权限。

    注意:权限配置文件中出现的用户名必须在passwd文件中有定义过,对权限配置文件authz的修改会立即生效。

    启动SVN

    至此配置已完成。

    1、启动SVN:

    /usr/bin/svnserve –d –listen-port 9999 –r /opt/src/repositories/MCDRE

    -d 以daemon方式运行

    --listen-port 监听端口号,默认端口3690

    -r 指定目录

    2、检查是否启动成功:netstat –tunlp | grep 9999

      tcp       0             0 0.0.0.0:9999               0.0.0.0:*         LISTEN 出现以上信息说明启动成功

    3、停止SVN服务:killall svnserve

    客户端访问

    1、  Windows下安装TortoiseSVN:使用svn://192.168.0.9: 9999/访问

    2、  Linux下# svn checkout svn://192.168.50.10:9999

    附加:单版本库和多版本库的配置

    权限文件authz在apche与svnserve服务器上的配置不同,单版本库和多版本库上的配置也有不同。

    1.配置authz时,如果svnserve的启动参数 -r 所指定的目录为直接指定到版本库(称之为单库svnserve方式)

      例如:svnserve -d -r d:\svn\project1

    在这种情况下,一个svnserve只能为一个版本库工作。

    authz如果配置成下面这样就是错的:

    CODE:

    [groups]

    admin=user1

    dev=user2

    [project1:/]

    @admin=rw

    @doc=r

    应该配置成

    CODE:

    [groups]

    admin=user1

    dev=user2

    [/]

    @admin=rw

    @dev=r

    因为[project1:/]表示project1的根目录,而按上面的启动参数,是没有库的概念的。

    使用类似这样的URL:svn://192.168.0.1/  即可访问project1

    2.-r指定到版本库的上级目录(称之为多库svnserve方式)

    如果使用以下命令启动svnserve:

    CODE:

    svnserve -d -r d:\svn


    这种情况,一个svnserve可以为多个版本库工作,这是如果想限制指定库的指定目录,就应该指定具体的库,想像这样:

    CODE:

    [groups]

    admin=user1

    dev=user2

    [project1:/]

    @admin=rw

    @doc=r

    如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录

    使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1

    这样的URL:svn://192.168.0.1/project2 即可访问project2

    3.对中文目录进行权限控制时,应该将权限文件authz改为utf-8格式。

    参考

    http://who0168.blog.51cto.com/253401/579061

  • 相关阅读:
    跟踪内核启动过程CONFIG_DEBUG_LL【转自】
    为什么可能导致睡眠的函数都不能在中断上下文中使用呢?【转】
    可重入和不可重入【转】
    中断中处理延时及一些函数的调用规则(中断调i2c驱动有感)--中断中的延迟delay与printk函数的冲突【转】
    Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)【转】
    仿照linux dpm机制,实现自己的dpm【转】
    (二)内核锁的使用之信号量【转】
    linux dpm机制分析(下)【转】
    linux dpm机制分析(上)【转】
    python写一段脚本代码自动完成输入(目录下的所有)文件的数据替换(修改数据和替换数据都是输入的)【转】
  • 原文地址:https://www.cnblogs.com/hidewsj/p/2846630.html
Copyright © 2011-2022 走看看