EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 448|回复: 0
打印 上一主题 下一主题

[开发管理] 版本控制入门简介

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12404

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-10 11:12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
版本控制已经出现有些年头了。然而,我还是会被人问起一些,诸如版本控制是什么或者它是如何工作的,这样基础的问题。本文会概括地解释版本控制解决的重要问题,本文使用的场景针对的是源代码版本控制。
目前有很多不同类型的版本控制系统(Version Control System, VCS)。一些VCS,比如SubversionCVS,以中央仓库(repository)为中心进行架构。此外,还有分布式的VCS(Distributed VCS,DVCS), GitMercurial 是两个新近出现的DVCS。然而,在上述两种类型的环境中,通常会有一个“指定的”中央仓库。对应地,比如一个Subversion服务器或者一个GitHub仓库。下面会基于这个场景进行图示说明。那么让我们开始吧。
在开发者拷贝到本机之前,服务器需要创建一个仓库。创建初始仓库会由于产品不同而有所差别。从现在起,你所要知道的就是,在服务器上有一个初始空间。我把这个版本称作版本“A”。
现在,每个开发者(开发者1和开发者2)都会拷贝版本“A”到他们本地电脑。再一次地,从服务器拷贝的过程会由于产品不同采用的技术会有所差别。
每个开发者会在他们的本地拷贝上进行开发。他们的本地拷贝基于版本“A”。然而,由于他们应该不会做同样的开发,因而他们的版本会有所差别。因此,会有2个以上的版本会同时被创建,比如版本“B”和版本“C”。
开发者1首先完成了她的工作并提交到服务器。服务器上的当前版本被更新成版本“B”。
开发者2现在完成了他的工作并试图提交到服务器。然而,这是服务器告知他基于开发的版本已经发生改变。这也是为什么采取版本控制的首要原因之一。这个特性是对网络共享代码然后由开发者手动更新的一个跨越式发展,这确保了之前的编辑没有被新的修改覆盖。
开发者2必须首先获得所有版本“B”的变化,并合并到他的修改中,然后才可以提交到服务器。这个过程听起来有些复杂。然而,大多数现代的版本控制系统十分高级,能够自动在开发者的本地拷贝上完成合并。有几种情况会产生冲突(例如:开发者1和开发者2同时修改了同一个文件的同一行)。这就是一些VCS产品比其他更高级的地方。不论如何完成合并,现在开发者2在他们的本地系统上同时混合了版本B和版本C。
现在开发者2可以提交他的版本到服务器。
这是一个版本控制的基础。通过注意观察图中服务器的连线可以发现版本控制的原理。服务器记录了所有先前的版本包括发生的变化,什么时候发生以及由谁进行修改。当需要进行代码回溯或者引入其他bug时,这个记录能够解除困境。
我希望本文能够为版本控制系统提供一个基础的介绍。如果你有任何疑问,请就你问题发表评论。

英文原文:greenmoonsoftware编译:伯乐在线 – 唐尤华

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-11-16 12:54

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表