SVN的使用

SVN的使用

1.SVN简介

1.1 简介

  • SVN全称Subversion,是一个开放源代码的版本控制系统
  • 用于多个人共同开发同一个项目,共用资源的目的
  • 由于大部分时间只需要使用服务端,所以主要记录服务端的使用方法

1.2 主要作用

  • 目录版本控制
  • 真实的版本历史
  • 自动提交

1.3 基本概念

  • Repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
  • Commit(提交):当你已经Checkout了一份源代码,Update后就可以和Repository上的源代码同步

1.4 冲突

  • 如果两个程序员同时修改了同一个文件,SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,只要不是修改了同一行程序,SVN都会自动合并两种修改,如果是同一行,会提示冲突

1.5 生命周期

  • 创建版本库
  • 检出
  • 更新
  • 执行变更
  • 复查变化
  • 修复错误
  • 解决冲突
  • 提交更改

2.SVN下载安装

2.1 下载

3.SVN的配置

3.1 服务端

  • 设置IP和端口
    • Server name的值可以设为:
      • 127.0.0.1(只能本地自己访问)
      • 电脑用户名(只能本地自己访问)
      • 当前IP(能够ping通IP的用户均可访问)
  • 新建用户,设置账号密码
  • 新建分组,为分组添加用户,用于管理权限

4.SVN的使用

4.1 服务端

  • 新建版本库
    • 新建版本库时可以设置仓库的访问权限
  • 迁入项目到SVN
    • 拷贝远程仓库的地址
    • 选择任意项目,右键选择TortoiseSVN,选择import
    • 填入仓库地址和备注信息
    • 输入账号密码
    • 导入成功

4.2 客户端

  • 检索项目(check out)
    • 拷贝项目的远程地址
    • 右键选择SVN Checkout
    • 输入项目的远程地址,设置项目的存放位置,设置想要检索的版本
    • 拉取成功
  • 提交代码(commit)
    • 新建文件,右键选择TortoiseSVN,选择Add,将文件添加到版本库列表
    • 再次点击文件,右键,选择SVN Commit
  • 更新代码(update)
    • 如果当前资源不是最新版本,则可在项目空白处右键,选择SVN Update

4.3 版本冲突问题

  • A、B两个用户都在版本号为100的时候。更新了同一个文件,A修改完后提交到服务器,这个文件的版本号变成了101,此时B在100版本的文件上做修改,完成后提交到服务器时就会导致提交失败,如果A、B修改了文件的同一行代码,就会出现冲突
  • 发生冲突时,SVN会在当前工作目录中保存所有的目标文件版本

4.4 版本冲突解决

  • 用户将文件提交至服务器时,提示版本过期,首先应从版本库中更新,然后去解决冲突,之后使用 svn resolved 来告诉SVN冲突解决
  • 解决冲突的三种选择
    • 放弃自己的更新,使用svn revert(回滚),然后提交,这种方式不需要使用svn resolved
    • 放弃自己的更新,使用别人的更新,使用最新获取的版本覆盖目标文件,执行resolved filename并提交
    • 手动解决,冲突发生时,通过和其他用户沟通之后,手动更新目标文件,然后执行resolved filename并提交

4.5 如何降低冲突解决的复杂度

  • 当文档编辑完成后,尽快提交,频繁的提交/更新,可以降低冲突发生的频率和解决冲突的复杂度
  • 在提交时,写上明确的message,方便以后查找用户更新的原因
    • 养成良好使用习惯,使用SVN时每次提交完,就更新。明天早上打开后,首先从版本库获取最新版本。每天下班前必须将已编辑过的文档都提交到版本库

5.编辑器集成SVN

  • 具体步骤与配置码云和GitHub类似
  • 如果安装目录找不到svn.exe,是因为安装小乌龟的时候,没有勾选对应选项
原文地址:https://www.cnblogs.com/liutaodashuaige/p/14396913.html