现在的位置: 首页 > 综合 > 正文

版本管理的前与后-直白、随笔版

2012年08月29日 ⁄ 综合 ⁄ 共 1617字 ⁄ 字号 评论关闭
CSDN版本控制版本,给某同志的回复,一时兴起,随手写来……

==========

“彩虹公司”承接了“万象城”的工程,经过分析决定分三个模块来实现。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。

抱歉!评论已关闭.