我们的团队一直埋怨说我们的代码规模太大,结构太复杂,维护难度大而成本高。
最明显的一个弊病,就是在clearcase里面打开一个文件的version tree,密密麻麻,横七竖八,我们戏称为"蜘蛛网"。
然而昨天一位出差在外的同事,在维护公司另外一个产品的时候,有了惊喜发现:
我们的代码规模比起来还是差得远!
有图为证:
我的评价只有一个字:
晕!
PS:
解释一下,有些朋友没有用过版本控制软件的version tree,可能不大明白。
这个是version tree,是一个文件(注意,只是一个文件)的版本和分支历史,一般的版本控制软件都会提供类似的视图。
图上蓝色直线条的是这个文件的不同分支和这个这个分支下的不同版本,红色的线条是code merge,就是从一个分支的某个版本merge 代码到另外一个分支上时为了表示这种merge关系而增加一种表示方式。
从图上看,这个文件的分支过百了,版本应该过千,红色的merge线在某些地方已经要凝成实体了。这表明在这些版本之间有非常频繁的code merge。
再补充一下:
这个图片里面有些地方红线密集程度有些不大对劲,某些分支几乎每个版本修改都有被merge。正常开发中不应该是这样的,通常都只会是某个或某几个版本被merge。
猜测出现这个情况的可能,有一种解释就是可能在开发时使用了某些自动merge的工具,当该分支每出现一个新版本时就自动merge到某个目标分支,以保证两个分支代码的高度一致。当然这个无法证实,只是我的一个猜测。