• 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,是因为安装小乌龟的时候,没有勾选对应选项
  • 相关阅读:
    SpringBoot返回json和xml
    Spring boot 集成MQ
    Spring boot freemarker 配置
    Spring boot 自定义注解标签记录系统访问日志
    RIDE对应驱动下载
    在线修改pdf识别图片
    记公司食堂收厨余垃圾的人
    [Ruby]使用Ruby抓取网页及加工处理
    [转载]SCSS 和 SASS 和 HAML 和CoffeeScript
    [ACM]反复平方法的两种写法
  • 原文地址:https://www.cnblogs.com/liutaodashuaige/p/14396913.html
Copyright © 2020-2023  润新知