软件版本控制(SVN/CVS)详解

  • Post author:
  • Post category:其他


SVN/CVS都是版本控制和项目数据管理工具。

现在我们从”为什么有这些工具?”,“这些工具的发展历史?”,”主要作用?””哪些人使用?”等方面讲解。从根本意义上去理解SVN/CVS。

Software Configuration Management 即软件配置管理,也就是

软件版本管理控制

。简称

SCM



为什么会有SCM?


在比较大的项目中,一般需要的开发人员比较多,所以凸显的问题就太多了,比如:


在许多人共同开发一个项目下,一个程序员如何得到最新版本?

对于版本的修改情况,代码哪些更新过了?

如何查询或者更新到之前的版本(当前版本出问题的情况下)。


项目经理准确的得到当前的工作进度。


开发人员都改变相同版本的代码,做了同样的工作或者代码发生冲突。


记录开发历史,不方便比较不同和修改。


……………………..


SCM就是能够解决这些问题而诞生。



SCM历史?


起始于1970年,先用于 UNIX下开发的版本管理控制。



发展历程:


起始于:


SCCS (Source Code Control System)

RCS (Revision Control System)


演变:

SCCS→Codemgr



TeamWare

RCS



CVS

SVN   ——–SVN是异军突起,它满足CVS的功能,并且解决了CVS一些致命的缺点。所以现在大部分都在使用SVN了。



SCM主要作用?


Version Control(版本控制和产品数据管理)


其他—-(从程序员的角度来说很少用哦)



SCM的主要术语?


(了解概念)


Repository    —代码仓库

Workspace   —工作台      (就是客户端的上传下载代码的目录)

Delta ()          —不同版本的差别的保存。(文件和项目都有不同的版本,不同的版本比较不同的变化来做保存)–了解概念

Baseline       —基线

(HEAD)


Branch          —分支(拷贝出两个项目,发展不同的功能或者做bug修改)

Label             —

标签

(Tag)






国际性的一些大公司,他们开发

自己的

版本控制和代码管理工具,而且更自动化,可以自己更新,实现测试代码,发现bug等强大的功能,但是一般都是不开源的私人工具。例如:微软的操作系统团队版本控制工具。





SCM哪些人在用?


Project manager      —–(项目经理)

Software engineer   —–(开发者)

QA manager             —–(测试经理)

QA engineer             —–(测试人员)

Build and release engineer  ——(构建经理)



SCM目前使用最多的工具?


CVS


SVN


VSS(微软)

ClearCase

TeamWare


—————分割线———————–


写本文是想彻底去了解为什么会产生版本控制工具,他的历史,以及明白现在用的SVN是如何发展到现在这一步的。


文章做了概念性的说明,没有去项目分析每一句。只希望快速的去明白一些概念。(有 概念综合征的人 请绕道,或者请看下篇实际操作)


下篇对SVN在windows下的操作和SVN在Eclipse里面做的操作做一个总结(从程序员角度)


SVN在windows下的操作:http://blog.csdn.net/todaymz/article/details/8738919


Eclipse使用SVN的基本操作:




转载请说明出处:http://blog.csdn.net/todaymz/article/details/8738872



版权声明:本文为TodayMZ原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。