在学习SVN的时候,我们不可避免的会问:SVN是什么?我们为什么要学习SVN?它能帮我们做什么?怎么用它?
SVN是什么?
百度告诉我“SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。”
为什么要用版本控制系统?
一、版本控制:
是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借以在软件开发的过程中,确保由不同人所编辑的同一程式档案都得到同步。
二、常见问题:
1、程序——
(1)更改源文件,但不知道哪个是最新版本。
(2)不了解文件的修改过程,尤其是最后修改了哪几行以及为什么修改。
(3)多人修改一个文件时,有些人的结果被覆盖掉,导致不同的人改正同一个问题,影响效率。
(4)程序误删了,只能重写。
2、项目经理——
(1)项目后期调试周期长,开销大。
(2)调试过程中,经常出现“扯皮”,不清楚哪的问题。
(3)版本太多,查看不方便。
(4)估计项目成员的工作进度和工作成果比较困难。
3、boss——
(1)交付给用户的产品不完整,用户在安装时才发现问题。
(2)用户使用时发现的问题不能及时解决。
(3)不能确切了解项目的进度。
(4)公司的运作过程无法有效控制。
三、版本控制的优点:
(1)随时将程序恢复到以前某一时间点
(2)实现程序的互斥性修改
(3)对程序修改进行有效的管理
(4)将开发环境与测试环境、运行环境进行有效的隔离
(5)评估软件开发人员编写的程序质量,控制软件开发的进度
(6)管理文档
四、版本控制关键点:
(1)记录:记录代码提交间的变化
(2)同步:及时同步项目的进程
五、版本控制软件
(1)VSS(Visual Source Safe)——微软产品,仅支持windows系统,能力仅限于team级别。
(2)CVS(Concurrent Version System)——简单、易用,但只能对文件进行版本控制,不能对目录进行版本控制。
(3)Star Team——一个用于管理配置和变更的集成环境,能够与众多工具平台进行无缝集成。
(4)ClearCase——提供VSS,CVS,StarTeam所支持的功能,但不提供变更管理的功能。
(5)SVN(Subversion)——SVN提交文件,只有当全部文件修改都成功入库,该提交才变得有效。一旦中断,SVN将会自动执行“回滚”(rollback)操作。SVN 这种机制保证所有的修改要么全部入库生效,要么一个也不入库。这种特点是它极大的优势。
(6)SourceAnywhere——微软推荐的远程和跨平台访问VSS的工具。
(7)Git——为帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
小结
我们成长的每一步都需要不断发现,不断探索,从点滴开始,一步一步踏踏实实的向上走~~~