• cent os svn服务器搭建


    进入公司,发现公司开发员工每个人用svn客户端工具链接svn,都具有管理权限,所有目录都可以看见,这样很容易造成误操作。

    后来跟开发人员商量了一下,重新部署svn服务器


    yum源的svn包版本1.6,官方最新源码版本1.9.2

    1.源码安装 svn(subversion)

    下面是个人写了个脚本

    #!/bin/bash
    DIR=/usr/local/src
    yum -y install gcc gcc-c++ make openssl libtool
    cd $DIR
    subversion-1.9.2.tar.gz
    apr-1.5.2.tar.gz
    svn/apr-util-1.5.4.tar.gz
    sqlite-amalgamation-3090200.zip
    zlib-1.2.8.tar.gz


    tar -zxvf apr-1.5.2.tar.gz
    tar -zxvf apr-util-1.5.4.tar.gz
    unzip sqlite-amalgamation-3090200.zip
    tar -zxvf subversion-1.9.2.tar.gz
    tar -zxvf zlib-1.2.8.tar.gz


    cd $DIR/apr-1.5.2
    ./configure --prefix=/usr/local/apr
    make && make install


    cd $DIR/cd apr-util-1.5.4
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make && make install


    cd $DIR/cd zlib-1.2.8
    ./configure
    make && make install


    cd $DIR
    mv sqlite-amalgamation-3090200 subversion-1.9.2/sqlite-amalgamation
    cd $DIR/subversion-1.9.2
    ./configure --prefix=/data/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
    make && make install

    已经安装好

    2.创建svn版本库

    svnadmin create /home/svn_data/部门名称(好分辨)  这里可以创建多个(我分别创建了android,ios,chanpin)

    cp /home/svn_data/android/conf/authz passwd /home/svn_data

    从其中一个版本库中将authz passwd拷贝到根目录下/home/svn_data  方便管理多个版本库,

    3.编辑每个版本库的配置文件

    vim /home/svn_data/android/conf/svnserver.conf

    [general]

    anon-access = none 匿名用户权限

    auth-access = write 认证用户权限

    password-db = /home/svn_data/passwd 指定用根目录下的用户配置文件

    authz-db = /home/svn_data/authz 指定用根目录下的版本库权限分配文件

    realm = Android 登陆的提示信息

    [sasl]

    保存退出

    4.配置用户账户密码和版本库权限分配

    vim /home/svn_data/passwd   

    用户名  =  密码

    test1 = 123

    test2 = 123

    test3 = 123

    vim /home/svn_data/authz

    admin = test1,test2 组分配,test1 test2属于admin用户组

    admin1 = test3

    [android:/]    版本库名称根目录

    @admin = rw admin组用户可读写

    可以写多个,根据自己公司的需求,

    5.开启svn服务

    svnserver -d -r /home/svn_data     指定目录为svn根目录,

    可以通过svn客户端测试使用

    6.在cent os 服务器上做checkout 来同步上传的代码

    svn co svn://localhost/android /home/svn_checkout      可做定时任务,现在/home/svn_checkout目录下面就会出现开发人员上传的代码(不在本地做checkout,是看不见代码的)


    7.扩展,对版本库下级目录做权限分配

    通过客户端,在android下面创建个android1的目录,只想test1用户访问,其他人不允许访问

    编辑authz配置文件

    vim /home/svn_data/authz

    [android:/android1]

    @admin1 = rw      这样就可以了, 访问的路径就是svn co svn://localhost/android/android1     

    以此类推, 可以创建很多目录,并对每个目录做权限分配。


    遇到登陆问题,如何换登陆用户,(清空全部认证数据,在登陆就会提示输入用户密码,供测试使用)


    下面提供下,svn备份和迁移

    svnadmin hotcopy 版本路径 备份路径

    例如——

    svnadmin hotcopy /data/svn_data/ios /data/back/ios

    迁移——

    将备份的目录,进行压缩,同步到需要迁移的机器,解压即可,使用svnserver -d -r 目录   启动




  • 相关阅读:
    Java代理模式
    PHP7.3.0+弃用FILTER_FLAG_SCHEME_REQUIRED的解决办法
    《PHP7底层设计与源码实现》学习笔记1——PHP7的新特性和源码结构
    《MySQL实战45讲》学习笔记2——MySQL的日志系统
    PHP反射学习总结
    依赖注入模式中,为什么用对象而不是用数组传递?
    记MySQL的一次查询经历
    数据结构与算法之PHP递归函数
    PHP的json_encode()函数与JSON对象
    Linux系统如何查看版本信息
  • 原文地址:https://www.cnblogs.com/jonnter/p/7725230.html
Copyright © 2020-2023  润新知