源码管理工具是什么? 这个问题对研发中的兄弟姐妹而语,是天天使用,用来吃饭的东西嘛:

代码管理、协作开发、代码合并、代码分支、代码标签、代码比较、版本化工具。。。。。。

故,源码管理工具有很多产品(svn, cvs, hg, git 等),其功能类似,各有特色。

结合个人所使用过的SCM,我简单小结一下:

    1. 他是一种文件管理系统
    2. 他是研发团队交流的重要契约
    3. 他是队员彼此信任的核心之一
    4. 他是你取得进步的见证者之一
    5. 他是你觉得不孤独的利器之一
    6. 下面就我个人使用的源码管理工具列举一下,有些流水账,各位请继续忍忍:

  • VSS:2005年

  • 我最早使用的一个源码管理工具,VSS全程是Visual SourceSafe,其属于微软的一款产品。但是刚从一名工人自学编程,进入研发团队,还觉得挺难的:团队协作、checkIn、CheckOut等概念,那个时候,还不太理解做这些事情到底是为什么。

    VSS最大的一个特点就是可以和开发环境Visual Studio进行无缝结合,我记得2005年我用的Visual Studio 是2005版本, .Net 1.1框架。 网上找了个图片,记忆中的VSS的界面大概是这个样子的,中规中矩的WindowForm风格:

image

 

  • TFS:2006年

  • 团队发展到一个新的阶段,人多了起来,需要提 bug,需要提 需求, 需要分配任务,这个时候为了复用已有的VS技能,故升级到了VS完美结合的TFS(Team Foundation Server,这个也是微软出品的)。其功能强大:完整的软件生命周期工具、支持敏捷开发、可配置自定义查询、可定制Daily Builder等功能。

截图如下,我现在还记得TFS有一个很重要的特性是有lock功能,只能独占编辑。当时公司的SCM在内网搭建,外网无法访问,我们出差去保定,只能手工选择文件为可编辑,修改完毕后,等回公司后,再花1天时间合并、提交代码。

image

 

  • SVN:2009年

  • SVN(Subversion) ,是一个开源软件,崛起的速度很快,好像是 CVS(Concurrent Version System)的替代和升级版本。SVN起来的一个很重要原因是自由软件开发的协作网如SourceForge.net提供了SVN的访问方式。很大程度上,我对SVN熟悉是从一个乌龟的logo开始的:

image

 

SVN截图如下,完美的和Windows文件系统集成,SVN会非常方便进行源码管理:更新、提交很方便;其处理代码冲突也非常方便编辑。

image

 

  • Git:2014年

自打离开研发队伍后,业余玩点代码,没有源码托管的可真难受啊。

又懒得自己搭建源码服务器,开始尝试了微软的TFS Online,但是,网速那个慢,无法忍受。当看到国内Git免费托管盛行,就学习了Git方式(我用的是非命令行的,还是乌龟的tortoisegit)。所幸,Git到处有,国外著名的是Github(任意多个public的代码库,private收费)和bitbucket (免费提供1个private和任意多个public的代码库)。国内的如https://gitcafe.com/, 以及我最近1年在使用的http://git.oschina.net/–速度快、private免费、可团队协作等。

目测,Git因为是目前最火的、最流行的源码管理工具了吧。

git这么火,不仅仅是其免费、开源;还源于其血统和传奇:Linux创始人Linux Torvalds 花了短短几天写出来的,据说;自那以后,Linux就在Git下进行源码管理,加之,基于Linux的Android火的厉害。

image  image

 

  • Perforce:2015年

  • 头次听说Perforce源码管理工具,是看《游戏引擎框架》这本书,听说在游戏行业,用的很多,当时并未走心。第二次听说是li口头告之的, 大名鼎鼎的EA用的就是这个产品,但是还没有反应上来是啥–误以为是performance,用于测软件性能的工具,呵呵。

    回家查询了一下,原来Perforce不是默默无名之辈,其是Unity默认支持的文件管理系统之一,使用免费、开源的P4Connect即可在Unity中提及、获取代码。同时Perforce也提供了VS的插件P4VS:P4VS – Perforce Plugin for Visual Studio

花了约1.5天,看了一下官方文档和网友整理的博客《[SCM]软件配置管理》;自己下载Perforce工具–20人以下是免费的,动手在Windows 7上搭建了Perforce服务器。

配置Perforce服务:

image

在Project视图使用菜单:

image

不过,有时候,偶尔会有这样的错误,比较恼火:

image

昨晚处理一个问题:

Client ‘roger.wang_codepiao-PC_5688’ can only be used from host ‘codepiao-PC’.

本地建立workspace,不要指定host:

image

 

对源码管理工具,没有太多个人的喜好,都是团队的协同工具之一。

总之,在概念和操作上大同小异,熟练掌握即可。 对研发而言,天天会用到,无他,唯手熟尔。

如当熟练掌握一种源码管理工具,再要学习新的,1、2天就能上手了。如下图是SVN和Perforce的对比图:

image

 

 

同类型的几篇博客链接: