svn简单使用

简介

  • SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理

安装

  • 查看是否已安装svn

    rpm -qa | grep subversion 
    #查看版本  svn --version
    
  • 卸载原svn

    yum remove subversion
    
  • 安装新svn

    yum -y install subversion
    

    在这里插入图片描述

  • 创建版本库

    svnadmin create 目录
    

    在这里插入图片描述

  • 扩展 -----文件简介

    1. conf:配置文件
      • authz 文件是权限控制文件
      • passwd是帐号密码文件
      • svnserve.conf SVN服务配置文件
    2. db目录:就是所有版本控制的数据存放文件。
    3. hooks目录:放置hook脚本文件的目录。
    4. locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。
    5. format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
      在这里插入图片描述

配置

  • svn的配置主要是对conf目录中的配置文件做配置,主要是添加用户和权限配置。

  • 添加用户(到passwd用户配置文件中添加用户)
    在这里插入图片描述

  • 配置权限(到auth文件中添加用户权限)
    在这里插入图片描述

  • 解析
    joe=username1,username2:username1和username2用户为joe用户组
    [/]:表示仓库根目录下
    username=rw:表示username这个用户在根目录下有读和写的权限
    *=:表示其他用户在根目录下没有任何权限
    @joe=r:表示joe组在/think目录下只有读的权限

  • 开启配置设置(svnserve.conf文件中做下面修改)
    在这里插入图片描述

  • 关闭svn

    killall svnserve
    

    在这里插入图片描述

  • 启动 svn

    svnserve -d -r ./
    

    在这里插入图片描述
    注意:该命令后要指向所创建的版本库地址

  • 检查是否开启服务

    ps -ef | grep svnserve
    

    在这里插入图片描述

  • 扩展:到这步时其实已经是可以使用svn了,但是

使用

在这里插入图片描述

  1. 创建svn

    svn co svn://服务器ip
    
  2. 开放防火墙3690端口

    firewall-cmd --add-port=3690/tcp --permanent 
    firewall-cmd --reload
    
  3. 本地电脑检出

  4. 本地电脑上传
    在这里插入图片描述
    在这里插入图片描述

  5. 服务器svn手动更新

    svn update
    

    在这里插入图片描述

  6. 将svn设置开机启动
    找个地方写个脚本,svnserve命令最好用绝对路径,可用which svnserve查找,如我的在/usr/bin/svnserve
    脚本内容如:

#!/bin/bash
/usr/bin/svnserve -d -r /svn

保存之后加入到开机启动文件那里

  1. 扩展
    自动更新svn
    ①. 进入hooks脚本目录中
    //进入hooks脚步目录中
    cd hooks
    //复制post-commit.tmpl为post-commit
    cp post-commit.tmpl post-commit
    
    ②. 修改post-commit文件
    在这里插入图片描述
    将最后三行代码改成下面代码
  • export LANG=zh_CN.UTF-8
    这句话比较重要,如果客户端跟服务器编码不一样会出现同步失败
  • WEB=你的web目录
    将要同步过去的web项目路径
  • /usr/bin/svn update $WEB
    /usr/bin/svn代表你的svn服务文件地址 如果是通过yum安装的话,或者已经注册了svn服务,则可以直接使用svn,不需要输入全路径

③. 设置post-commit文件可以执行权限(若不设置则会出现commit false 255错误)

	chmod  a+x  post-commit  (或者chmod  777 post-commit)

错误总结

  1. 问题: svn: warning: ‘xxxxx’ is already under version control
    原因:很可能是 .svn 隐藏目录版本信息被修改了或不对
    解决:删除.svn文件,重新检出
  2. 在Linux下使用SVN的时候,部分文件更新的时候出现了"Node remains in conflict"的错误。文件一直更新不了,即使删除了也无法正常update
    解决:
    svn revert --depth=infinity 文件
    svn up 文件
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值