版本管理(3)- 版本管理工具的选择

初次见面的朋友,经常问的一个问题是:“你们用什么管理代码?”

版本管理工具很重要

选择什么版本管理工具来管理源代码,这是很重要的一个问题。很多年以前是要么选择 IBM ClearCase,要么选择免费的 CVS;现在则是要么选择 Subversion(简写 svn),要么选择 Git。虽然这么多年出现了很多很多的版本管理工具( Accurev, MKS, TFS, SourceSafe,Hg,StarTeam,Perforce... ),虽然现在这些工具在很多公司依然存在,但是不得不说,现在的主流是 svn 和 Git。一个代表着征战沙场10多年的简单易用集中式版本管理工具;一个代表着开源新宠分布式版本管理工具。

想明白了这一点,那么上面的问题就变成了如下:

你用 svn 还是 git ?

我觉得现在这个问题相对要好回答的多。

  • 如果公司现在依然使用着 svn,我一般不劝他们转到 git,除非 80% 研发人员说:“你不给老子用 git,我就辞职”
  • 如果公司新成立,没有啥历史包袱愿意用哪个我都觉得可以。
  • 如果公司是 android 相关或者 ruby 相关,那用 git
  • 其它情况, 我个人觉得 如果团队有人能 hold 住 git 且愿意围绕 git 打造一个工具链, 那我支持用 git。个性、现代、前卫、关键是有逼格;否则我觉得更应该用 svn,因为它务实、肥瘦不挑、老少皆宜,让我们可以更加把注意力放到业务、代码本身而不是工具上。不图别的,真的简单易用, ROI 高。

工具链

选择 svn 或者 git 其实很简单,难在围绕相应的工具打造一个工具链。源代码管理前有项目管理、需求管理工具,后面连着构建管理、发布管理工具,同时还要面对整个公司的研发团队。

工作中时不时的都需要和配置管理工具打交道,有的时候还需要做二次开发。版本管理工具的变更,有的时候意味着很多工具都需要改造。新建立的公司或者新成立的团队没有历史包袱,选择相对随意,可以任性;但是对于很多公司或者项目来说,我们要从整个工具链去看这个问题,而不是仅仅版本管理工具这一个点。

配置管理工程师要从公司整体的利益去考量这个问题。想想如何让公司的整体效益提高、平均研发效率提高。而不是从个人喜好或者团队的喜好去考虑。当然如果有的团队愿意尝鲜,我们也可以搭建相应的系统,让他们去把玩。但不能影响了公司的整体效率。这方面的例子有很多,我想之前参加过配置管理技术沙龙的小伙伴都听到过,因为涉及具体公司这里就不赘述了。

小结

工具链、大局观、整体考量

名词解释:

  • ROI: return on investment, 投资回报率是指通过投资而应返回的价值,即企业从一项投资活动中得到的经济回报。

你可能感兴趣的:(版本管理(3)- 版本管理工具的选择)