zoukankan      html  css  js  c++  java
  • linux服务器 svn的安装与配置

    一、概述:

      Subversion(SVN)是一个开源的版本控制系统,也就是说 Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 。

    二、一些概念:

      repository(源代码库):源代码统一存放的地方

      Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份

      Commit(提交):当你已经修改了代码,你就需要Commit到repository

      Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository 上的源代码同步,你手上的代码就会有最新的变更

    三、安装

    1. 环境

      centos7

    2. 安装

    > yum install subversion  (有些代码加了 -y 的参数,它的意思表示:对所有的提问都回答"yes")

    3. 查看版本 

    > svnserve --version

    4. 创建版本库

    先建目录

    > mkdir /var/svn

    创建版本库

    > cd /var/svn
    > svnadmin create /var/svn/svnrepos
    > cd svnrepos 会看到自动生成的版本库文件
    conf db format hooks locks README.txt

    版本库文件说明

    db目录:就是所有版本控制的数据存放文件
    hooks目录:放置hook脚本文件的目录
    locks目录:用来放置subversion锁定数据的目录,用来追踪存取文件库的客户端
    format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
    conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)

    进入conf文件夹会看到三个配置文件

    vim passwd
      设置账号密码 在[users]块中添加用户和密码,格式:账号=密码,如 test=123456

    vim authz
      设置权限 在尾部添加 [/] test=rw (r:读 w:写)
    vim svnserve.conf
      按i进入编辑模式
      打开下面的几个注释:
      anon-access = read #匿名用户可读
      auth-access = write #授权用户可写
      password-db = passwd #使用哪个文件作为账号文件
      authz-db = authz #使用哪个文件作为权限文件
      realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
      按esc退出编辑模式 输入:wq保存退出

    5. 启动/停止版本库

    svnserve -d -r /var/svn/

    用ps查看启动状态

    ps -ef | grep svn

    停止版本库

    killall svnserve

    6. 实现svn与web同步

    1)设置web服务器根目录/home/www

    2)checkout一份到web服务器根目录

    svn co svn://localhost/svnrepos /home/www
    修改web用户权限
    chown -R root:root /home/www

    3)建立同步脚本

    cd /var/svn/svnrepos/hooks/
    cp post-commit.tmpl post-commit
    编辑post-commit,在文件末尾加上以下内容
    export LANG=zh_US.UTF-8 svn update /home/www –username test –password 123456 --no-auth-cache chown -R root:root /home/www
    增加脚本执行权限
    chmod +x post-commit

    四、安装好之后进行测试

    启动SVN客户端

    输入svn://公网IP/svnrepos checkout你可能会发现连接失败

    如果是使用阿里云的服务器,需要在安全组设置添加3690的端口

  • 相关阅读:
    TOJ 3660 家庭关系
    TOJ 2857 Stockbroker Grapevine
    关于字符串不为空 错误:s!=null
    根据判断数组不为空然后取他的值----数组不会为空---只能判断其size是否大于0
    JRebel 7.1.5 插件下载 安装 激活 结合 IntelliJ IDEA--自动编译进行热部署---
    @requestbody---接受前端传json对象并绑定javabean
    json转换时区问题-------前端展示时间少8小时--解决方法
    使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转)-----https://www.cnblogs.com/smileberry/p/4145872.html
    数据库设计软件介绍--几种数据库建模工具推荐(包含开源版)
    mysql 查询当天、本周,本月,上一个月的数据---https://www.cnblogs.com/benefitworld/p/5832897.html
  • 原文地址:https://www.cnblogs.com/caichunbao/p/7592190.html
Copyright © 2011-2022 走看看