自从公司与 Borland 建立了合作关系以后,一直在推 Borland 的 ALM 产品,包括 Together Architecture, CliberRM, StarTeam 等了,当然全都是合法授权的版本。我们这个项目作为公司第一个全程采用 StarTeam 的项目,从开始到结束前后两个月,一直是以 StarTeam 为中心进行开发的,虽然还没有时间去尝试一些 StarTeam 的特色功能,比如 Change Request 管理之类的,仅仅是作为一般的配置管理工具用的,当然它所宣传的良好的协同特性都是没有怎么用到的。
StarTeam 对于我们最有价值的一件事要算是它的缓存机制了,对于跨地域的团队协作有不错的帮助,StarTeam 的缓存机制能够有效的加速 check out 文件的速度。对于两个在不同地点协作开发的团队,一般会通过专线互连,两边的机器都在同一个局域网内,但受到专线带宽的限制,速度还是会很慢的,过去使用 VSS 作为配置管理工具,从找到到 check out 出一个十几k的文件都要花上三分钟,用 CVS 因为在传输的过程中会进行压缩,有一点点的改善,不过还是比较慢的,当然 ClearCase 这样的东西更是慢的出奇了,一个小时都拿不了几个文件。缓存机制可以说是我感受到 StarTeam 对我们最大的好处了,check out 一个1M左右的 folder 一般只要 10 秒左右,主要原因还是因为 StarTeam 的 MPX 机制,当一个人 check out 一个远程文件,就会形成一个本地缓存,当本地的其它用户请求同样的文件,这时候就不再是从远程的服务器端获取,而是在本地这个缓存的机器上获取,感觉有点像 BT 的原理,竟然也用到这样的企业级开发应用中来了,比较的有意思。
虽然这个好处已经让 StarTeam 在我们这样的团队结构下发挥了很大的作用,不过它的一些操作上和细节上的问题还是很不能让人觉得爽,特别是以 Eclipse Plugin 形式发布的 Client,稳定性真的很差,经常莫名其妙的就与服务器失去连接,但同时开的 Windows Client 却一点问题没有,很稳定的在工作着。另外一方面,Plugin 的同步功能好像不够快,有人 check in 了一个文件,半天都看不到,但 Client 没有这个问题,立刻就刷新了。
Plugin 的同步功能还是挺好用的,感觉比 CVS 的同步要好用一些。直接点在项目的每一级文件夹下,直接就可以看到这个文件夹或 package 下有多少需要同步的文件,然后选中需要 check in / check out 的文件,Run 一下就可以了。不过 Run All 按钮在 Run 按钮旁边可能会有一些问题了,也造成了我们这边的一些错误操作,延误了一些时间。因为有人不小心删除了本地文件,同步的时候,会要求同时也删除服务器端的文件,点 Run 的时候不小心点到 Run All,服务器上的东西都没了,只好 rollback 了,花了不少的功夫。