zoukankan      html  css  js  c++  java
  • Linux下配置SVN

    1、安装svn

    yum -y install subversion

    2、创建SVN版本库目录

    mkdir -p /var/svn/svnrepos

    (-p参数:如果没有这个目录,则创建这个目录)

    3、创建版本库

    svnadmin create /var/svn/svnrepos

    (这个"/var/svn/svnrepos"目录就是我们的版本库目录所在,后面的一系列配置需要用到这个目录)

    4、进入/var/svn/svnrepos/conf/svnserve.conf

    打开下面的几个注释(将注释符合前面的空格都删掉):
    anon-access = read #匿名用户可读
    auth-access = write #授权用户可写
    password-db = passwd #使用哪个文件作为账号文件
    authz-db = authz #使用哪个文件作为权限文件
    realm = /var/svn/svnrepos # 认证空间名,版本库所在目录

    5、启动svn版本库

    svnserve -d -r /var/svn/svnrepos

    6、设置账号密码

    vim /var/svn/svnrepos/conf/passwd

    在[users]块中添加用户和密码,格式:帐号 = 密码(记得“等号”两边的空格),如cly = 123

    7、设置权限

    vim /var/svn/svnrepos/conf/authz

    在[groups]块中添加如下代码(将用户放入统一的用户组):
    组名=用户1,用户2,,用户3
    之后在末尾再建一个[/]块(里面对之前定义的用户组赋予权限):
    @组名 = rw
    * = r

    8、同步更新web目录

    一、
    svn://xxx.xx.xx.xx/svnrepos
    这是一个完整的版本库路径,其中svnrepos是svn版本库的名字,通过这个路径可以选择某个版本库

    二、
    我们每次检出只能检出svn版本库里面的文件夹。
    比如:
    选择svn://xxx.xx.xx.xx/svnrepos后,看到里面有A,B,C三个文件夹。
    此时若检出"svn://xxx.xx.xx.xx/svnrepos"路径,则会形成svnrepos文件夹,里面有A、B、C三个文件夹
    若检出"svn://xxx.xx.xx.xx/svnrepos/A"路径,则会形成A文件夹,里面有A文件夹的内容

    知道以上两点后就可以开始配置了。

    当我们上传web代码到svn上时,我们肯定希望代码能同步更新到服务器的www文件夹里,这时候就要用到“钩子程序”,自动将代码checkout到服务器的web目录,过程如下:

    一、

    在svn中创建一个版本(在pc端写好程序,然后提交给svn作为初始版本)

    二、

    将设置post-commit文件的权限设置为777
    四、

    到你想要存放代码的目录中(如/var/www/html),检出svn,

    如:# svn checkout svn://xxx.xx.xx.xx/svnrepos

    (依照不同的检出方式会生成不同的文件夹)

    三、

    在/var/svn/svnrepos/hooks中找到post-commit.tmpl文件,将它在当前目录复制一个,并重新命名为“post-commit”。

    之后删除post-commit文件里面所有的内容,重新填写如下内容:

    #!/bin/sh

    REPOS="$1"
    REV="$2" 
    TXN_NAME="$3"

    WEB=/var/www/html/svnrepos

    (这个目录的填写比较重要,如果你在/var/www/html目录里检出后生成了svnrepos文件夹,则此处填/var/www/html/svnrepos,如果用svn checkout svn://xxx.xx.xx.xx/svnrepos/A语句检出,则会生成A文件夹(不会生成外面的svnrepos文件夹),则此处填/var/www/html/A)
    export LANG=en_US.UTF-8
    svn update $WEB --username alps --password chen #alps是svn的用户名,chen是svn密码,自己换成自己的。

    9、关于连接svn时的一些常见错误

    svn: E170001 Authorization failed 

    这个错误一般是用户访问权限不足所导致

    比如在上面的实例中,/var/svn/svnrepos/conf/authz中的末尾[/]块,如果改成其他路径(如[/vra/svn/svnrepos]),那么在连接svn时就会报这个错

    如此这样设置下来,svn的地址为“svn://服务器ip地址/svnrepos”

  • 相关阅读:
    前后端不分离的springboot项目问题:页面框架问题
    SpringBoot使用Filter过滤器处理是否登录的过滤时,用response.sendRedirect()转发报错
    mysql千万级数据优化查询
    java进阶学习的一些思路
    java的List列表转成Tree(树形)结构列表
    cmd 一键获取 所有连接过的wifi 密码
    SQLMap用户手册【超详细】
    Python:SQLMAP参数中文解释
    初识sql注入及sqlmap
    wwwscan网站目录文件批量扫描工具
  • 原文地址:https://www.cnblogs.com/red-code/p/5409266.html
Copyright © 2011-2022 走看看