zoukankan      html  css  js  c++  java
  • svn

    vn配置详解
    适用于开发人员比较少的情况,
    由于每次提交都留一个副本,所以svn的数据库的容量会暴增。
    不能连接到svn服务器上就不能工作。
    开发人员在svn服务器上下载代码。



    subversion 官网
    subversion.tigris.org
    subversion.apache.org

    svn客户端:tortoisesvn.net
    svn中文网站:www.iusesvn.com
    常见问题解答:http://subversion.apache.org/faq.zh.html
    官方手册:svnbook.red-bean.com 中英文都要

    现在有个问题,svn在windows服务器上,希望开发人员上传后,能同步到Linux的web目录下
    所以
    方法一:
    svn updata /路径        路径是看你放代码的位置
    然后保存为.sh文件,放在/root/update.sh,然后cron
    * * * * * bash /root/update.sh 每分钟更新次代码

    方法二:
    post-commit,????






    服务端运行方式:
    1 独立服务器:svn://ip/test
    2 借助apache等http服务 90%的人使用
    http://
    csvn单独整合软件,带web的svn软件
    3本地直接访问
    file://

    客户端访问:
    主要两种
    http://
    svn://


    在服务端配置svn
    一般性的功能要求,没有特殊要求,用yum安装方便快捷

    rpm -qa subversion                检查有没有安装
    yum install -y subversion        
    yum后的软件保留,可在无网情况下安装。
    sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
    grep keepcache /etc/yum.conf
    keepcache=1           rpm下载后不清除

    ****************************************

    svnserver --help
    -d                 守护进程模式
    -r                 指定根目录
    --pid-file        存放进程号,方便管理
    --listen-port    监听端口

    配置并启动svn
    建立两个目录,数据存储根目录,和用户密码权限目录。
    mkdir -p /svndata    数据存储根目录
    mkdir -p /svnpasswd    用户和密码权限目录

    启动svn
    svnserver -d -r /svndata/            指定根目录为/svndata/
    ps -ef | grep svn                    查看进程
    netstat -lntpu| grep 3690            查看端口
    lsof -i :3690                        查看端口

    建立项目的版本库,sadoc,用svnadmin命令。
    svnadmin create /svndata/sadoc  不能用mkdir,相当于初始化
    cd /svndata/sadoc/conf
    vi svnserver.conf
    anon-access = none                        匿名访问,第十二行。    
    auth-access = write                        权限控制
    password-db = /svnpasswd/passwd         用户和密码的数据库20
    authz-db = /svnpasswd/auth                加密,权限            25
    更改svn配置文件需要重启,编辑passwd和auth时不用重启。
    查看更改后内容
    egrep "-access|-db =" svnserver.conf

    cd /svndata/sadoc/conf
    cp passwd authz /svnpasswd

    修改svnpasswd下的auth passwd权限是700
    cd /svnpasswd/
    chmod 700 *
    vi passwd
    [users]
    stone = stonesecret                        用户名和密码
    test = testsecret

    vi auth
    sagroup = stone, test    分组,管理

    [sadoc:/]            项目名和目录
    stone = rw
    test = r    
    @sagroup = r

    重启svn
    svnserve -d -r /svndata/




    在windows上的客户端下载TortoiseSVN

    svn客户端连接服务器的方式,账号,密码
    svn://10.1.1.1/sadoc        ip为服务器ip
    用户名:stone
    密码: stonesecret
    windows中的svn的checkout
    其中checkout directory是下载地址

    linux客户端管理
    svn --help

    将服务器端(svn服务器安装配置的位置)的文件下载到本地服务器上
    svn co svn://10.1.1.1/sadoc /svndata/ --username=stone  --password=stonesecret
    co 是checkout的简写,提取数据。
    svn://10.1.1.1/sadoc是sadoc版本库
    svndata 是开发让运维放到目标服务器的目录

    查看远程服务器的数据,在Linux客户端查看。
    svn ls svn://10.2.2.1/sadoc/  --username=stone --password=stonesecret



    钩子,利用pre-commit限制文件的扩展名和大小,提出输入的信息。
    然后利用脚本中的rsync执行同步命令,实现其自动更新到文档目录中。
    假设有一台站点服务器,站点目录是/data/wwwroot/
    先checkout下载来了
    svn co svn://10.1.1.1/sadoc /data/wwwroot/    --username=  --password=
    cd /svndata/sadoc/hooks
    将模板中的.tmp去掉就可以使用
    cp post-commit.tmpl post-commit
    vi post-commit
    #!/bin/bash
    PEPOS="$1"
    PEV="$2"
    export LANG=en_US.UTF-8
    LOGPATH="/app/log"
    [ ! -d ${LOGPATH}  ] && mkdir ${LOGPATH} -p
    SVN=/usr/local/svn
    $SVN update --username=stone --password=  /data/wwwroot/
    if [ $? -eq 0 ]
        then
            /usr/bin/rsync -az --delete /data/wwwroot/ /tmp
    fi


    chmod 700 post-commit


    此外还有个提前检测的标准
    pre-commit



    ——————————————————————————————————————————
    ——————————————————————————————————————————

    特例:
    svn在windows服务器上,开发人员要求把windows客户端修改好的的php文档放到web目录上,
    web是一个Linux服务器,

    用户名:stone
    密码:EGlKQodX
    windows服务器svn:    svn://201.16.180.44/panter
    开发人员给的目录:    /api/ying/pay.php


    svn --username=stone --password=EGlKQodX co svn://210.16.180.24/panter/api/ying/  test

    test 是一个目录,下载的pay.php会放到test下,然后在拷贝到其目录下,如果再次下载要更换目录

  • 相关阅读:
    Oracle之配置节点间相互信任机制测试
    记crt 在windows与linux服务器之间利用ftp进行文件的上传下载
    虚拟机防火墙的相关设置
    Linux下载安装mysql5.7教程
    linux下使用Oracle常用命令
    Linux的常用命令
    ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/19.2.0/db_1/dbs/initsanshi.ora'报错
    Linux下创建Oracle19C的数据库实例
    redhat7.6Linux安装Oracle19C完整版教程
    Python模拟登录的几种方法
  • 原文地址:https://www.cnblogs.com/fengzhongzhuzu/p/8670650.html
Copyright © 2011-2022 走看看