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