靠着 51testing 论坛管理员“风在吹”同志和一位不知名MM的辛勤工作,我的 blog 终于完成 CNBlogs 和 51testing-blog 的同步。亲爱的同志,我要请你们吃饭 ^_^

应用Microsoft Visual SourceSafe组织软件开发项目

上一篇 / 下一篇  2007-06-27 17:40:51 / 个人分类:12.配置管理

应用Microsoft Visual SourceSafe组织软件开发项目
来源: Microsoft   作者: Microsoft
摘要 51Testing软件测试网:T#y-N2Gk l b

  专业的软件开发需要对在开发过程中每一应用程序的源代码修改的管理进行流水线处理。Microsoft_ Visual SourceSafe?记录了系统、项目和文件级修改的历史记录,允许你安全的在多个程序员之间分配开发工作,跟踪修改信息,并恢复个别文件或整个应用程序的早期版本。51Testing软件测试网X7KR4V9U)a?#Fg2]Gf

51Testing软件测试网:] ]8] K.td$A6v/|N

简介51Testing软件测试网Z-e[*e%Q4dlg

AvY.jAiU m+|0  代码是宝贵的资源。为了保护它,很多开发者应用一些版本控制系统以保护文件避免未授权的修改和意外的错误。这些系统有很多种,从有关程序注释的更改和存储旧版本的君子协定到自动跟踪修改和历史记录的复杂的软件系统都有。51Testing软件测试网 L2cH G+{+l;q&BvV

51Testing软件测试网r^M5T{X5gxJ

  大多数来源控制系统对于单独的源文件是有效的。但是,它们几乎全部不能在文件间建立关系。这在Microsoft Windows的环境中将引起问题,因为在该环境中,一个应用程序可以包含多个可执行文件和由许多不同的源文件建立的动态连接库,它们有可能在很多其它应用程序中重复使用。当今,管理源文件间的关系和保护源文件的内容本身同样重要。51Testing软件测试网}0pS!?!k;S

51Testing软件测试网Uj;B-y STOg#h

  Microsoft Visual SourceSafe 版本控制软件通过将项目管理的任务和源代码的控制结合起来,解决了这个问题。以注重在管理源文件的同时管理项目,Visual SourceSafe提供了对该问题的优秀的解决方案,是用标准的、面向文件的来源控制系统不易实现的。

-K!^ok`9H0 51Testing软件测试网q WYT2~;G-b+F'_4|

软件开发流水线 51Testing软件测试网Gz,L6w"B3i _

51Testing软件测试网5rB/Y)R?0^p

  为了理解面向项目的来源控制的优点,仅需将它和面向文件的系统进行一下比较。一个标准的版本控制系统(例如,UNIX工具RCS)必然是一组用于操作独立的文件、控制文件访问和更新并与早期版本比较的工具的集合。为了操作一组文件,你需要编写一个批文件或在命令行指定通配符。51Testing软件测试网mB)b#blUsW \S

*}7xb?*`Bw&~8_0aX]0  Microsoft Visual SourceSafe将文件存储在网络的中心数据库中,而不是在一个普通的DOS目录中。在系统级,该数据库表现为一个“黑盒”。但是,当以Visual SourceSafe为视图时,可以看到该数据库中包含了你的组织到项目分层结构中的所有源文件和历史记录。51Testing软件测试网"o1yb x Zaof

;[;j:S-L \7A+z0  当你检索一个文件时,Visual SourceSafe将在数据库中标记该文件为签出,然后允许你在你的机器上对该文件进行修改。当你将该文件放回时,Visual SourceSafe更新它的数据库并重新修改你的机器对文件的访问权限为只读。51Testing软件测试网.D p8Z&v"yq'ns

fr9^9jbP0  然而,这和面向文件的来源控制有什么不同呢?51Testing软件测试网mZ+G#Gqb-WV

0tm jhE$fwRn0  对于每一个改变,Visual SourceSafe数据库记录并追踪那些对于面向文件的系统不可用的项目信息。每当文件被加入,修改,共享,移动,或从项目中删除,Visual SourceSafe将同时更新文件和项目的历史记录。你可以应用项目历史记录来简化这些工作:

-H0L0I{b5F&J?0

a tH:U.i-_0D/e0  在连编前浏览指定项目及其全部子项目中所有文件的状态。 ? 缩小那些由于在某一日期联编可能引起错误的指定文件的改变信息。

].FKZjd0 51Testing软件测试网3I,m @)Zt8[z&T

  重新生成所有应用程序的前一版本。

Q&C$iTRm#h,Lb-i0

K\5FN$}3U S._r0  维护被许多不同应用程序共享的源文件。

,^b] P.|)T:M2P+lM0

J`SRigC3XpX.r c0  确定哪一个项目将由于改变被多个不同应用程序共享的文件而受到影响。

5[6I*|8t3XVOv&yJ0 51Testing软件测试网:b+R RW ^7b4g:^;g(P8@)l

  管理通用应用程序的特定客户版本。

g)PQ"o/y8Z$C eU"N0 51Testing软件测试网 Ir$r7^+h w

  对于软件开发人员来说,试图通过面向文件的系统来完成这些工作,将是令人难以忍受的琐碎且无益的。正如下述的方案所阐述的那样,Visual SourceSafe面向项目的版本控制通过直接进行这些工作,将开发过程流水线化了。51Testing软件测试网*_8l&i1` z ms V3[:Sr

5WR'@d v+Z ^i _0为连编做准备51Testing软件测试网2~ g-P[.U?c)e.D7UC

7L(F;d@&g0  假定你将连编一个包含了很多独立的部件的主应用程序。在你开始连编之前,你希望确认没有人在最后的时刻修改代码,并且在版本控制过程中,整个系统没有文件被签出。51Testing软件测试网N KggI%GN*c8?1A3FR

g2im{ m H*f0  一个标准的版本控制系统提供给你一个确定文件是否签出的工具。你的工作是对将用来连编的每一个目录中的每一个文件运行该工具。尽管引入批处理文件和通配符将使任务简单些,但面对一个复杂的系统时,仍然是非常繁琐的。51Testing软件测试网hIt!Q$]d

51Testing软件测试网 D5`*YuV_:d,D

  正如其它系统一样,Visual SourceSafe可以确定一个文件是否被签出。但它还可以创建一个高层的报告:一个项目中所有签出文件的列表。这一特性应用在当前项目中循环包含所有子项目时功能尤其强大。Visual SourceSafe检查每个相关项目中的每一个文件并生成签出文件的列表。你可以立即知道是否可以进行连编(或如果你不能时该找谁)。仅需在项目文件中执行一个命令,Visual SourceSafe就可以自动完成以前冗长的需手工完成的工作。51Testing软件测试网D x.E6_4? XxQ,F

kgml$R0精确回归

^;@$E)bW?8ZZ^.]0

(H D:@L5c&l:Ur~0  包括Visual SourceSafe在内的所有版本控制系统都有文件历史记录报告。文件历史记录报告中列出了从最新的到最旧的每一个文件版本,包含诸如对文件进行了什么操作,谁做的,什么时候完成的和进行了什么备注说明等信息。

Z| Qi!q;Q*j0

K$uJ,c;}0  尽管文件历史记录非常有用,但它们也有一些缺陷。例如,假定一个特性在上个星期还可以正常工作,但在这个星期连编你的应用程序时出了问题。显然,最近有人引入了这个错误,但是在哪一个文件中呢?51Testing软件测试网G3@}j&kG|q

|^4Rl%Rdd0  在标准的版本控制系统中解决这个问题,你需要为一个象是有错误的文件生成一个历史记录报告,看是否它最近被修改过,并浏览修改情况。如果你没有找到错误,你就要选取另一个文件进行检查,如此类推。你可能用这种方法查遍了系统中的所有文件但没有找到关键的修改──因为事实上这个修改是增加或删除文件,而标准的版本控制系统根本不追踪这样的操作!51Testing软件测试网tGN|To,m

51Testing软件测试网9ci5Y{*?to`

  在Visual SourceSafe中,你通过项目本身生成报告。例如,它可能报告COMMON.BAS刚被修改;在此之前,OPENALL.FRM被修改过;此前,FILESUPP.BAS被增加到项目中;诸如此类。Visual SourceSafe整理这些否则你将手工完成检索的修改信息,允许你浏览上个星期的全部修改的顺序。这将节省你很多的时间并帮助你避免陷入困境。51Testing软件测试网.XlBY*f \ y)YN

_9[#Q$k'rG6}$Di0重新创建前一项目版本51Testing软件测试网0ek0b)v&S*]8{

,g,M.vJX;A/j]U0  通过检索项目的历史记录,Visual SourceSafe允许你快速重新创建整个应用程序的前一版本。这将帮助你解决在前一版本中报告的错误,并确认它们在当前开发的新版本中已解决。51Testing软件测试网nZh0N9a?

51Testing软件测试网#e5T9q X(f*f&Un9j3t

  例如,假定一个用户报告应用程序版本2.03中有一个打印问题。应用程序的该版本可能包含一个文件版本为10,另一个文件版本为15,诸如此类;但你不必担心这些。从Visual SourceSafe中请求一个指定的项目版本,你便可以还原一个完全的、用于连编2.03版本的应用程序源文件的本地的副本。51Testing软件测试网t6e H*xLFT

51Testing软件测试网 Y%Q-F&i_(KAo

  若应用标准的版本控制系统完成这些工作,你或者必须将应用程序的每一个发行版本的来源独立存档或者需对每一个版本搜索指定的文件。这两种方法中,为前一次连编恢复正确的源文件都是一件烦人的手工的过程─ 一项可能被取消或推迟的工作。

,WS9@U8w0

wi9@^rVz0维护可重用代码

3S{ HI)DtgqZBKl0

)?n3L;T2? ch0  大多数应用程序是在一个公共的核心代码的基础上开发的。这些文件在很多不同的应用程序中一次又一次的被使用并随着时间不断完善,得到错误修复,性能提高,和新的特性。应用现存的代码的好处是巨大的,但在处理组织问题时仍然是件另人头疼的事。你必须记住文件被哪些应用程序使用,并将每一个修改信息传送到所有恰当的地方。当有五个应用程序重用一个文件时,这还只是小麻烦,当有二十个应用程序混合在一起并与五十个不同的重用文件相配时,麻烦就大了。

?+Z:yCgjV8m0 51Testing软件测试网#uUB#@SY O0cG

  一个标准的版本控制系统在这个问题上根本帮不上忙,因为一个源文件可同时存在于多个不同的项目中。但Visual SourceSafe可以自动完成这一切。在它的数据库中,Visual SourceSafe对每一个文件只存储一次。每个项目文件包含了一个拥有指向数据库中文件位置的指针的文件。对于每一个项目,所有版本的文件都是可用的;同时一个项目可以“冻结”一个文件的版本,以避免当其它开发工作组在可重用代码上工作时引入错误。

E)ur&V U)C5q$Lo0 51Testing软件测试网5QWr$gZ` dxb5A

  举一个普遍的例子,假定你有一个包含了多个不同打印报告进程的源文件。在Visual SourceSafe中,每个需要打印报告的应用程序均需要共享该文件。如果你发现了一个错误,你可以从任何一个项目中更新文件─这一改变信息将立即传送到每一个共享该文件的项目中。Visual SourceSafe可以报告哪些项目共享了该文件,于是你就知道哪些应用程序受到了影响并需要重新连编。

"B-Ue ?x0 51Testing软件测试网O]Ytn/aU]1Oy w?

创建特定用户版本51Testing软件测试网$?$U7Kq:Aw*]

51Testing软件测试网 b9c3{y E F

  另一个普遍的来源控制问题是关于用户的,他们期望定制应用程序以满足他们特定的需要。本来,你有很多不同的应用程序,他们共享几乎全部的相同的源文件。应用标准来源控制工具,追踪错误并保持连编的连续性的时间将比编程所花费的时间还多。应用Visual SourceSafe,你为每个新用户创建一个项目,指明哪些文件是共享的和哪些文件是独享的。当你在一个项目中工作时,对于特定用户的改变信息将保留在当前的项目中,而对于共享文件的修改将传送到所有用户版本。

p`v3p,aw2hr;n M L0

x`:C1V |4F}:? uI051Testing软件测试网"tB6S/X7Ay { ^
Jackei 2005-01-12 22:30 发表评论
51Testing软件测试网i S y` \ dK1]

0F#r k{R_K7P0Link URL: http://www.cnblogs.com/jackei/archive/2005/01/12/90957.html

TAG:

 

评分:0

我来说两句

Open Toolbar