配置管理的困惑

      说起来,对配置管理这东西,也是直到最近才有个较为深刻的认识和体会。鄙人第一次接触配置管理大概是在2003年(惭愧),还在读书的时候,去清华接个小项目赚点小钱,才用到了VSS,记得当时还向一个博士请教如何比较同一文件两个版本的不同。
      最近在做的一个项目是分期的,现在一期已完成,VSS里面打了Label,发布了测试版本,交付给客户进行验收,同时二期的开发工作也已经展开,于是遇到以下的问题。
      二期的工作是在一期基础上进行完善和扩充,而不是推倒重来,所以我们在给客户提交的测试版本上继续了二期的开发。但这期间客户不断地有bug反馈过来,我们又得去改一期的bug,而有的文件此时已经按照二期的需求做了改动,对这些文件要从VSS里面get旧的版本进行修正,最终要保证修改完毕的一期版本中剔除二期的内容,但这些改动还要同时引入到二期中来,以保证不能在二期中还出现同样的bug。由于这样的文件不是少数,而且项目和程序集之间还有引用关系,因此非常混乱,每次都得小心翼翼地搞半天。
      就不能有更好的办法么?研究了一下VSS的Share功能,在资料上对Share功能大致描述如下:
      “在VSS中可以实现一个文件被多个项目共享(share)。在一个项目中对文件的改动可以自动反映到其他共享的项目中去。这正提倡了代码重用。”
      很高兴,以为这样的Share是单向的,即我把一期测试版本的文件Share出来,作为二期开发的源头,而原一期的文件保持不动,以后修改了一期的文件,可以自动更新到二期这边来。但是经过实验之后发现,这种“自动反映”是双向的,即从二期这边修改的文件也会自动更新到一期的文件中去,这样对我所面临的问题就没有意义了。
      后来请教了一下公司的其他人,他们说这只是短期的需求,没有好的办法,只能把一期的版本做一个Branch,在Branch上继续二期开发,而手工记录一期文件的更改,再更新到二期的Branch上来。这确实是短期的需求,待二期完成之后,就不会有这问题,所有文件的状态都取最新的就好了,但短期的需求不是需求么?
      不知其他的配置管理工具,比如CVS,有没有这样的功能,大家是怎么处理这种情况的?

posted on 2007-05-12 01:11  阿多斯  阅读(2451)  评论(11编辑  收藏  举报

导航