Windows下版本控制器(SVN) - 1、开发中的实际问题+2、版本控制简介

news2024/9/23 17:18:13

在这里插入图片描述

文章目录

  • 基础知识-Windows下版本控制器(SVN)
    • 1、开发中的实际问题
    • 2、版本控制简介
      • 2.1 版本控制[Revision control]
      • 2.2 Subversion
      • 2.3 Subversion 的优良特性
      • 2.4 SVN 的工作原理:
      • 2.5 SVN 基本操作

基础知识-Windows下版本控制器(SVN)

1、开发中的实际问题

  1. 小明负责的模块就要完成了,就在即将 Release 之前的一瞬间,电脑突然蓝屏, 硬盘光荣牺牲!几个月来的努力付之东流——需求之一:备份
  2. 这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这 被改得面目全非的代码已经回不到从前了。什么地方能买到哆啦 A 梦的时光机啊? 需求之二:代码还原
  3. 小刚和小强先后从文件服务器上下载了同一个文件:Analysis.java。小刚在Analysis.java 文件中的第 30 行声明了一个方法,叫 count(),先保存到了文件服务 器上;小强在 Analysis.java 文件中的第 50 行声明了一个方法,叫 sum(),也随后 保存到了文件服务器上,于是,count()方法就只存在于小刚的记忆中了——需求 之三:协同修改
  4. 老许是一位项目经理,我会告诉你他把每一个版本都保存一份吗?我会告诉你这 些工程里其实有很多文件都是重复的吗?我会告诉你老许为这事删了很多电影 吗?——需求之四:多版本项目文件管理
  5. 老王是另一位项目经理,每次因为项目进度挨骂之后,他都不知道该扣哪个程序 员的工资!就拿这次来说吧,有个该死的 Bug 调试了 30 多个小时才知道是因为 相关属性没有在应用初始化时赋值!可是二胖、王东、刘流和正经牛都不承认是 自己干的!——需求之五:追溯问题代码的编写人和编写时间
  6. 小温这两天幸福的如同掉进了蜜罐里,因为他成功的得到了前台 MM 丽丽的芳心, 可他郁闷的是这几天总是收到 QA 小组的邮件,要求他修正程序中存在的 Bug, 可他自己本地电脑上是没有这些 Bug 的,“难道我的代码被哪个孙子给改了?”。 是的,小温没来的时候,丽丽是 QA 小组小郑的女朋友啊!——需求之六:权限 控制

2、版本控制简介

2.1 版本控制[Revision control]

最初来源于工程设计领域,是维护工程蓝图的标准做 法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化, 以便将来查阅特定版本修订情况的系统。

2.2 Subversion

就是一款实现版本控制的工具软件,通常也称为版本控制器,简称 SVN。

Subversion 是 Apache 软件基金会组织下的一个项目。

2.3 Subversion 的优良特性

目录版本控制 CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系 统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在 客户端对文件和目录执行移动和复制命令。

原子提交

提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提 交修改。

版本控制的元数据

每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对, 属性也会像文件内容一样被纳入版本控制。

可选的网络层 Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机 制,Subversion 的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP

的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很 大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏 览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自 己的协议,可以轻松的用 SSH 封装。

一致的数据处理 Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)

和二进制(人类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在 版本库中,差异在网络上双向传递。

高效的分支和标签

分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只 是复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少 并且相对固定的时间,以及很小的版本库空间。

2.4 SVN 的工作原理:

采取客户端/服务器模式——在服务器的版本库中保存项目文 件的各个版本,所有参与协同开发的程序员在自己本地电脑上保存一个工作副本。

SVN 支持程序员将本地副本更新到服务器端的最新版本,也支持将本地副本的最 新改变更新到服务器端,而且后面的更新不会覆盖前面的更新,而是作为一个新 的版本被保存下来——SVN甚至支持将本地工作副本恢复为服务器端保存的某一 个历史版本。
在这里插入图片描述

2.5 SVN 基本操作

检出(checkout):将一个服务器端创建好的项目整个下载到本地,这是到项目 组后参与开发的第一步,只需执行一次。

更新(update):将本地文件更新为服务器端的最新版本,通常为每天上班时

或修改公共文件之前执行一次。

提交(commit):将本地修改提交到服务器端。通常每天下班前或每实现一个 功能、完成一个模块时执行一次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟机配置工作环境

一、安装cmake apt-get install cmake 二、配置JAVA环境 1、将这两个文件放入虚拟机文件系统中,拖进去即可 2、执行安装命令./ 3、拉代码svn rootmlw-virtual-machine:~/svnCode# svn --username wangmiaolin co https://10.200.20.20/svn/TIASDev/Devsrc/Branch…

docker容器:Docker-Compose

目录 一、Docker-Compose 1、Docker-Compose使用场景 2、Docker-Compose简介 3、Docker-Compose安装部署 4、YML文件编写注意事项 5、Compose配置常用字段 6、 Docker Compose 常用命令 7、Docker Compose 文件结构 8、docker Compose撰写nginx 镜像 9、docker Compos…

了解 WhatsApp 和 WhatsApp Business 之间的区别

实时讯息 app 是所有支援管道中客户满意度最高的一种,且其使用率已大幅攀升。事实上,根据我们的 2021 年客户体验趋势报告,在 2020 年,光是 WhatsApp 的工单量就增加了 101%。 客户想要使用他们惯常与亲友连络用的管道和企业互动…

stm32在SDIO模式下SD写入错误的问题

1、问题描述 使用FAT32 f_write 多次执行写操作时,会报FR_DISK_ERR错误,而且是刚开始写不报错,写几次后会一直报错。 设断点跟踪到HAL_SD_WriteBlocks中,在调用SDMMC_CmdWriteMultiBlock时,会报SDMMC_ERROR_TX_UNDERR…

016:Mapbox GL加载geojson数据,显示line,自定义颜色、宽度等

第016个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载geojson数据,显示线条。paint中可以设置的参数:line-blur,line-cap,line-color,line-dasharray,line-gap-width,line-gradient,line-join,line-miter-limit,line-offset,line-opacity,line-…

缓存空间优化实践

导读 缓存 Redis,是我们最常用的服务,其适用场景广泛,被大量应用到各业务场景中。也正因如此,缓存成为了重要的硬件成本来源,我们有必要从空间上做一些优化,降低成本的同时也会提高性能。 下面以我们的案…

【MySQL】数据库完整性和安全性

目录 一、完整性 1.概念 2.sql语言支持的两种约束 2.1静态约束 撤销追加约束 断言 2.3动态约束 触发器 二、安全性 用DBMS对数据库实现的两个特性 一、完整性 1.概念 指dbms保证的db的一种特性,在任何情况下的正确性、有效性、一致性 原理图 广义完整性&…

深度学习第J7周:ResNeXt-50算法思考

目录 一、问题 二、思考分析 🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作者:[K同学啊] 查看j6周代码,思考解决问题。 一、问题 📌你需要解决的…

自然语言处理实战项目5-文本数据处理输入模型操作,以命名实体识别为例,打通NLP模型训练从0到1

大家好,我是微学AI,今天给大家带来自然语言处理实战项目5-文本数据处理输入模型操作,以命名实体识别为例。今天我给出的案例是命名实体识别,假设我们有一个命名实体识别任务,需要从文本中识别人名、地点和组织等实体。…

快速找出满足所需比值的一对电阻值 - Python 函数实现

常用的5% 和1% 精度电阻的阻值满足E24 数系,基数只能在这个数系里取,再乘上10 的n 次幂。E24 数系如下图: 之前我都是人肉一个一个试的,凭运气挑,终于忍不住想整个一劳永逸的小工具。 代码 对于给定的比值&#xff0…

【计算机是怎么跑起来的】基础:计算机三大原则

【计算机是怎么跑起来的】基础:计算机三大原则 计算机的三个根本性基础1.计算机是执行输入,运算,输出的机器输入,运算,输出 2. 软件是指令和数据的集合指令数据 3. 计算机的处理方式有时与人们的思维习惯不同对计算机来…

格式工厂将视频导出Maya需要的图像序列帧

目录 一、格式工厂影片转序列帧 1、格式工厂下载链接 2、打开需要转换的视频 3、输出配置 4、开始导出序列帧 二、Maya中添加影片序列帧和动画播放 1、打开Maya2016版本软件 2、导入图像 3、序列帧设置 4、播放速度设置 5、Maya中播放序列帧动画 一、格式工厂影片转序列帧…

展会邀请 | 虹科诚邀您4月26-28日前来参观成都国际工业博览会

HONGKE NEWS 2023 成都国际工业博览会精准聚焦中国智能制造,将通过展示自动化和工业机器人技术、新一代信息技术、金属加工、节能与工业配套、新材料等全行业最新技术和解决方案,完美呈现智能工业产业链中的创新技术及产品的有效融合。 2023年4月26日-…

无人机3d可视化系统的应用是怎样实现的?

随着科技的发展,以信息化为支撑的系统化操作将成为未来信息对抗的主要形式,通过人工智能技术赋能感知系统,可以抓住机会控制局面,带动后续环节高效运行,缩短循环求解时间,为信息对抗提供机会和关键支撑。无…

为什么医疗保健需要MFT来帮助保护EHR文件传输

毫无疑问,医疗保健行业需要EHR技术来处理患者,设施,提供者等之间的敏感患者信息。但是,如果没有安全的MFT解决方案,您将无法安全地传输患者文件,从而使您的运营面临遭受数据泄露,尴尬&#xff0…

leetcode 周赛 2386. 找出数组的第 K 大和-java实现

题目所属分类 华为校招 原题链接 给你一个整数数组 nums 和一个 正 整数 k 。你可以选择数组的任一 子序列 并且对其全部元素求和。 数组的 第 k 大和 定义为:可以获得的第 k 个 最大 子序列和(子序列和允许出现重复) 返回数组的 第 k 大…

【新时代圈友app】为什么要使用MongoDB数据库?— 查询缘分值最高的最佳好友并返回相关信息

目录 一、为什么要使用MongoDB数据库? 二、缘分值最佳好友 思路 一、为什么要使用MongoDB数据库? 本项目涉及到的圈子(动态)功能,用户会对朋友圈进行点赞、评论;那么随着用户的不断增多,评论点赞收藏等信息也会不断…

JS之Map的基本使用

一、Map的基本API 创建: const map new Map()插入:map.set("name", "郑建")读取:map.get("name")判断:map.has("name")删除:map.delete大小:map.size遍历&#…

webhub123 设计师好用的笔刷纹理网站收录​

整理了一些可以免费下载的好用的笔刷和纹理资源网站,收录到 webhub123 设计师好用的笔刷纹理网站收录​http://www.webhub123.com/#/home/detail?projectHashid31645930&ownerUserid21336964 收录效果如下,每个网站显示为一张图片,点击…

【Python基础入门学习】Python基础语法学习

基础认识 1. 注释2. 变量2.1 变量命名规则2.2 变量的类型2.3 不同类型之间的运算规则2.4 变量的输入和输出2.4.1 print 函数使用2.4.2 input 函数使用 2.5 变量的类型转换 3. 分支语句3.1 判断的定义3.2 if 判断语句基本语法3.3 else 处理条件不满足的情况3.4 逻辑运算3.5 if 的…