“彩虹公司”承接了“万象城”的工程,经过分析决定分三个模块来实现。
A模板是共同部分,B模块实现内部管理,C模块实现外部浏览。于是项目
头头在服务上建了3个目录,分别以A/B/C命令。由两个程序员CrazyCoder
和ClientCoder来进行编码。
ClientCoder在A目录中建立了文件SessionControl,以实现对Session的控制,
它可以实现记录用户名、用户密码等相关信息。而CrazyCoder则依据这个
文件实现了B模块的功能。大家相安无事了一个星期……
在第二个星期初,项目头头说用户要增加一个用户信息:会员帐号。而这个
信息只有CrazyCoder才用的上,于是在没有通知ClientCoder的情况下,他
修改了SessionControl。
又过了两天,ClientCoder开始坐立不安。因为他发现,他的程序老是编译
不通过,偶尔通过时会提示Session出错。终于在周末ClientCoder开始抓
狂了,在得知CrazyCoder修改了SessionContral后,冲他大喊:TMD,为什
么不告诉我,害爷爷我白干了4天。CrazyCoder抿嘴笑道:哥们,不好意思!
于是大家统一了SessionControl的内容。
如此多次后,大家都有点害怕修改SessionContral了。就这样的状态直到5
个星期后程序终于发布了,但问题又来了。A模块没问题,而B模块和C模块
则不停的报错。更让人恼火的是,“彩虹公司”撩了狠话,1个星期修改不
好那就拜拜了您呐。
后三天里,CrazyCoder和ClientCoder没有合眼。分别检查B和C目录中的代码
,直到最后发现——两个人都少拷贝了一个文件。而这2个文件是在第5周的第
3天完成的。God,合并这些修改、重新编译后,系统终于正常了… 不过,
CrazyCoder和ClientCoder因此都去医院打了两天点滴。
======================
CrazyCoder和ClientCoder又一次在项目中合作了,当然这次开始乖乖的使用
版本管理系统,不再使用项目头头的“A/B/C”目录。嗯哼,两个人都蛮爽,
甚至在开发末期都能抽出时间喝下午茶!
原来CVS给这两个人带来了好处,使得“撤消”变得如此简单。所有的程序都能
马上回到上一个版本。嗯,可以是一天前、一小时前、一分钟前。不过更让ClientCoder
兴奋的是,合并功能带给他太多好处,这样就不必担心CrazyCoder随便乱改自己
维护的代码了,啊哈,ClientCoder暗自偷笑。
ClientCoder知道CrazyCoder经常会写一些“深奥”的代码,而且没有注释。
CVS则可以帮ClientCoder找出这些代码是什么时候写的,根据进度可以大概猜
出代码的功能。为什么要猜,啊哈,因为CrazyCoder时不时去酒吧喝一通,然后
第二天就去泡医院的护士MM。
ClientCoder心里知道CVS最大的好处还是可以同时发布不同的版本。使用Tag
功能,ClientCoder可以随时编译哪个时间产生的版本。比如:万象城在4月12
日发布了新版本,此后5月13日又发布了一次。可突然用户说5月13日前,他们
发现消费查询无打印功能,而5月13日后打印出的根本不是消费记录。
啊哈,ClientCoder立马回去重新编译了两个版本,并分别进行了测试。发现4月
12日时的版本未实现报表接口,而5月13日的版本则将接口挂到欠费报表上了。
ClientCoder迅速修改并重新发布了5.14版,问题得到了解决。不过第二天,
CrazyCoder得到了份奖励,自罚3罐啤酒,外加买单。
======================
至那以后ClientCoder感觉CVS不仅是版本控制系统,不仅是源代码管理系统。
CVS还带给他一些别的东西,比如,新买的T60。
链接:http://blog.csdn.net/zhxmcm/archive/2007/04/18/1569044.aspx
作者:小书乖张http://blog.csdn.net/zhxmcm