SVN

作者: 大喵哥哥666 | 来源:发表于2019-08-02 22:26 被阅读0次

    安装

    • Ubuntu安装:
      apt-get install subversion
    • Centos安装:
      yum install subversion
      注:Subversion软件包内已包含服务端和客户端

    版本控制工具比较

    版本控制比较.jpg

    服务端和客户端命令

    svn命令.jpg

    版本库的创建与删除:

    • 创建版本库
      svnadmin create /path/repos
      删除版本库
      rm -rvf /path/repos

    版本库配置及权限分组

    • 配置文件位于 /path/repos/conf/
    • authz --配置用户组以及用户组权限
    • passwd --配置用户名和密码
    • svnserve.conf --配置默认权限、权限配置文件及密码配置文件

    更新和提交的概念

    update&commit.png

    版本库的访问

    版本库访问.png
    • 启动svn命令:svnserve -d -r 仓库路径
    • 搭建环境
      访问版本库第一步:检出版本库(checkout),作用就是在本地创建一个工作副本
      svn checkout(co) svn://IP地址(或者域名) --username xx --password xx

    常见SVN术语与文件状态

    术语&文件状态.png
    建议:svn服务端不会把某一个客户端提交的数据主动推送给其他人,所以当其他人提交了新数据的时候我们可能并不知道,这时候工作副本和服务端的数据已经不一致。
    养成一个经常更新的好习惯。让工作副本和版本库尽可能的保持一致。在开发中最大程度的避免数据冲突。

    checkout和export的区别与使用

    checkout-检出 export-导出

    • checkout检出的工作副本目录中含.svn文件夹
    • 版本控制中有一种文件状态:无版本控制
      svn checkout -r版本号 检出指定版本
      svn export -r版本号 导出指定版本
    • 区别
      checkout检出的在版本控制之下
      checkout =>.svn+项目文件
      export导出的不在版本控制之下
      export =>项目文件
    • .svn记录着工作副本最后一次更新后的文件状态
      .svn标记工作副本的一切变化

    常见客户端命令

    • svn add 添加到版本控制
    • svn commit 提交修改到服务端(创建一个新版本号)
    • svn update 更新工作副本
    • svn delete 从版本库中删除文件或目录
    • svn add 文件夹 --non-- recursive 添加目录到版本控制,但目录下的文件不递归添加(默认是递归添加的)
      注:使用svn add * 进行批量添加的时候,如果一个目录已经在版本控制中,那么这个目录下的文件就不会被添加到版本控制,使用 svn add * --force就可以避免这种情况
    • svn commit(ci) -m " 提交备注" 文件名/目录 注:-m参数是必须要加的
    • svn delete(del)/remove(rm) 文件名 -m "删除备注" 注:删除备注不是必须的
      然后提交svn ci -m "" 把服务端的对应文件删掉
    • svn di 文件名 比较工作副本和最后一次更新版本的差异
    • svn di -r 版本号 文件名 比较工作副本和指定版本的差异
    • svn diff 版本差异比较
    • svn mkdir 创建目录并增加到版本控制
    • svn cat 不检出工作副本直接查看指定文件

    svn update 特性

    1. 默认情况下,每个文件只会从服务器端更新一次最新版本,使用svn up * 可以强制再更新到最新版本
    2. 当工作副本缺失某个文件的时候使用svn update更新,服务端还是会把缺失文件的最新版本更新给你

    相关文章

      网友评论

          本文标题:SVN

          本文链接:https://www.haomeiwen.com/subject/cswrdctx.html