SVN的视频进行了两遍,第一遍基本上没什么感觉,晕晕的,今天来到机房,配置了一下服务器的库,和自己的机器感觉有点感觉了。讲的基本上都懂了。
自己组里的数据库和图都已完善,今天看了一下又看了一遍SVN的视频,总结下该开始分工进行代码了。
首先SCM
SVN的前辈,不过已经有被SVN超越的势头,SVN解决了SCM中的一些问题,,比SCM要好用。长江后浪推前浪,很正常。
SCM解决的问题
To the software engineer
--更改源文件,不知道哪个是最新版的。
--不了解文件的修改过程,不知道修改了哪几行
-- Make(将大家的工作结合到一起)时,经常用错文件的版本
--多人修改一个文件,有些人的结果被冲掉了;
--花了一周时间,终于查处了一个错误,但发现有个同事上周前已经修改了同样的错误,但我却不知道,造成浪费。
To project manager
--整个项目由若干部分组成,项目初期各人做各人的一部分,后期合并联调,但是周期很长,达数周甚至数月,开销非常大;
--调试过程中,经常出现“扯皮”,搞不清楚哪的问题
--版本太多,有的太旧,查看不方便。
--估计项目成员的工作进度和工作成果比较困难。
To the boss
--交付给用户的产品“缺斤少两”,用户在安装时才发现问题
--用户使用时发现的问题不能够及时得到解决
--不能过确切了解项目的进度,总是得到“差不多”“大概”之类的模糊回答公司的运作过程无法控制,“不按我说的做”
SVN核心功能
版本控制
不仅控制源代码的版本,文件,图标,设计等等都有版本控制
版本控制的基本概念
Repository(库) 最基本的概念,就是把所有的工程都放到这个库中。
Workspace(工作台)
Delta:Version 的变化
分为Forward Delta 和 Backward Delta
Baseline(基线)
Branch (分支)
可以是从主干上分出一份,有时候就是把一个类似的系统复成程两份,然后根据不同的需求来做开发。
Label(tag) 标签
SVN主要功能
Build & Release System
职位:Release Manager
整合:把所有人的工作整合到一起,这个过程一般是自动化的,通过Makefile(脚本程序)来把不同人工作成果自动化的构建到一起。
Nightly Build Support
每夜构建,这个过程之所以叫做没夜构建,是因为这个过程一般是在晚上进行,而不影响白天的工作,也可以是隔几天构建一次。
Coordinative Work
不同地域可以共同开发,比如一些开源项目。
Problem Solving
开发人员开发重复了可以合并(merge)
Build Release
给每一个发布的文件都加上标签
谁会用到SVN系统
Project manager 项目经理
Software engineer 软件工程师
QA manager 测试经理
QA engineer 测试人员
Build and release engineer 构建工程师
理论上的东西基本上都晦涩难懂,但是听了比不听强。SVN功能很强大,刚知道了点皮毛,还得在实践中学习。
合作开发进行中,日子很充实。