说明:由于博客园的限制,之前转发的MVP卢建晖的文章不能放入首页,但我会继续转发,感兴趣的同学请到我的博客首页查看。


博主:

翻译自微软Visual Studio ALM产品组老大Brian Harry 的博客文章 The future of Team Foundation Server Version control.

最近关注微软开发工具的同学一定都对TFS有一定的了解,从2013版本开始,TFS中提供了2种不同的源代码管理方式,TFSVC和Git。随着Git的大规模流行,好像TFSVC变的越来越不重要了。而实际情况远非如此,就博主自己的经验而言,虽然互联网公司,创业团队对于Git 非常钟爱,但是对于许多传统行业或者大型团队,使用集中式的TFSVC仍然是他们的第一选择,这里面当然有很多诸如安全,管控的问题;但是现实的情况是不能忽视的。

关于 Brian Harry
Brian Harry是微软院士,同时也是Team Foundation Server产品组的总经理。

译文:

我之前也针对这个问题写过文章,但是这个问题仍然挥之不去。经常有人问我“TFSVC是否已经死掉了?”,我觉得我必须不停的回答:不,不会!

我们在TFS2013中加入了Git的支持,因为我们觉得集中式(CVCS)源代码控制和分布式(DVCS)源代码控制都是业界非常需要的功能。我们在Git上的投入是相当大的,这是由于我们必须提供与TFSVC同等的功能。大家的误解当然是有一定的原因的。我们最近谈了很多的Git,非常多。业界也对Git非常关注,非常。而且,如果你关注微软最近的走向,你会发现微软内部越来越的团队在使用Git。我自己的很多团队也转向了Git。这些都是事实,很多人就此认为我们将会摒弃TFSVC,但我们不会。

我们大多数的客户仍然在使用TFSVC,我们对此非常重视。微软内部也仍然在使用TFSVC。在Visual Studio Online (VSO)上新创建的项目,大多数都选择使用TFSVC。毫无疑问,我们看到了转向Git这一趋势,同时我也认为这种趋势将会继续。在以后的几年中,我觉得Git的使用比例会超过50%,这很有可能。无论如何,仍然有几十万(接近百万)的项目在使用TFSVC。因此,TFSVC在很长的一段时间里仍然非常的重要。

好吧,以上都是个人的观点,下面我们看一些事实:

TFSVC的核心非常成熟,有非常大规模的团队在使用TFSVC,它非常的稳定。我们最近更加关注TFSVC的核心功能,比如:

  1. 我们最近大幅改进了我们的Web界面,加入如浏览器内编辑,签入,删除等功能。这些都是在TFSVC上。
  2. 我们为TFSVC添加了“欢迎页面”,基本上就是一个基于TFSVC的wiki页面。(博主:使用markdown语言的wiki页面)
  3. 我们在CodeLens上支持TFSVC,而且一些功能只在TFSVC上可用,比如:“分支变更影响”指示器的功能。
  4. 下一代的构建系统Build.vNext支持TFSVC。
  5. 全新的代码搜索功能,虽然预览版只支持Git,但在正式发布版中会提供对TFSVC的支持。
  6. 代码评审功能的改进,包括多次迭代式评审,web支持,Visual Studio中的代码评审意见注释等等。这些都支持TFSVC。
  7. 我们最近在支持Mac/Linux环境的跨平台Team Explorer Everywhere (TEE)工具上改进了对超过260个字符的支持,这也是在TFSVC上。这是社区中经常被吐槽的问题。(博主:TEE是Eclipse的插件,提供Eclipse中连接TFS进行团队开发的能力)
  8. TFSVC项目的改名操作,看上去是个小功能,但其实底层做出了非常大的改动。
  9. 我们正在开发同一项目中2种源代码控制并存的支持,这也需要对TFSVC进行修改。

当然还有很多我现在没办法分享给大家。大家可以看到,TFSVC没有死,而且活得很好,我们还在这上面大规模的投入,并且会继续投入。对于用户来说,你需要根据自己的实际情况选择最适合你的工作方式,我们会一如既往的支持你。

希望本文可以帮助大家消除疑虑,如果有问题的话,欢迎和我联系。

Brian

欢迎关注本博客微信订阅号 anb-io。每周推送内容,有技术也有生活,和你一起做一个有情怀的程序猿。

(翻译) TFS源代码控制的未来 (TFSVC vs. Git)的更多相关文章

  1. (翻译) TFS源码控制的未来 (TFSVC vs. Git)

    博主: 翻译自微软Visual Studio ALM产品组老大Brian Harry 的博客文章 The future of Team Foundation Server Version contro ...

  2. TFS下的源代码控制

    以下主要描述了: TFS源代码控制系统的基本场景 如何把一个项目添加到源代码管理中 如何与服务器同步 如何做Check-In 如何做分支与合并 什么是上架与下架 我们知道工作项是项目管理的基本元素,但 ...

  3. [转]TFS下的源代码控制

    本文转自:http://www.cnblogs.com/ajiefj/archive/2010/04/23/1718450.html 以下主要描述了: TFS源代码控制系统的基本场景 如何把一个项目添 ...

  4. TFS源代码管理的8大注意事项

    TFS源代码管理的8大注意事项 目录 源代码管理的8大注意事项... 1 1. 使用TFS进行源代码管理... 2 2. 如果代码没放在源代码管理软件里,等于它不存在... 2 3. 要早提交,常提交 ...

  5. [转载]TFS源代码管理8大注意事项

    目录 1. 使用TFS进行源代码管理 2. 如果代码没放在源代码管理软件里,等于它不存在 3. 要早提交,常提交,并且不要觉得麻烦 4. 提交前要检查你更改了什么 5. 写提交信息时一定要认真 6. ...

  6. [转载]TFS源代码管理

    以下主要描述了: TFS源代码控制系统的基本场景 如何把一个项目添加到源代码管理中 如何与服务器同步 如何做Check-In 如何做分支与合并 什么是上架与下架 我们知道工作项是项目管理的基本元素,但 ...

  7. vscode 显示"没有活动的源代码控制提供程序“处理

    不知为何我的 VS Code 在 1.25 版本开始就一直 ”没有活动的源代码控制提供程序“,找了好几天都没找到,今天终于找到怎么处理了, 切换到插件中找到下图对应的 Git (可以直接再上面搜索框输 ...

  8. VSCode Git 没有活动的源代码控制提供程序

    主要原因:我以前安装的Git只允许在Git-Bash中运行,需要重新安装Git,选择允许三方软件的那个选项,然后安装Git插件,修改git.path即可. 以下是解决过程中的尝试,记录如下,实际上只需 ...

  9. [翻译]用Dart塑造Android未来

    明天回家,今天下午瞅时间翻译了Cyril Mottier的另外一篇有关Android前景的文章. 原谅地址是:http://cyrilmottier.com/2014/06/12/shaping-th ...

随机推荐

  1. lua的string.gsub初使用

    今天在学习lua,熟悉项目代码的过程中,发现string.gsub好高级,所以在此mark下. 以下是lua5.1的官方文档介绍. string.gsub (s, pattern, repl [, n ...

  2. 实现了IEnumerable接口的GetEnumerator 即可使用 Foreach遍历,返回一个IEnumerator对象

    #region 程序集 mscorlib.dll, v4.0.0.0 // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framewor ...

  3. 如何使用C#创建WebService

    使用C#创建WebService,服务端的webservice是必须,中间的soap,Xml我们不用去关心.下面是使用C#创建WebService的简单介绍. AD:51CTO技术沙龙 | 赋予APP ...

  4. 【从API学英语】-DriverManager

    原文: The basic service for managing a set of JDBC drivers. NOTE: The DataSource interface, new in the ...

  5. VS2010如何使用Visual Studio Online在线服务管理团队资源(在线TFS)

    前言 Visual Studio Online,也就是以前的Team Foundation Service,从名字可以看出这是一个团队资源管理服务.在微软的云基础架构中运行,无需安装或配置任何服务器, ...

  6. 获取PC或移动设备的所有IP地址

    不论是PC还是移动设备,都有可能同时存在几个IP地址(如具有多块网卡),本文介绍怎样获得PC或移动设备的所有IP地址. // 获得所有IP地址 public static void get_ip(){ ...

  7. Xcode push带有cocoapods类库的项目到git仓库

    关于git之一点不熟悉,以前公司的项目搭建,版本控制这块,都是有专门的人在做,当然那时候也是用的git项目中也包含了cocoapods类库,当前公司比较闲, 所以研究了下git,用的是git.osch ...

  8. collection中的retainAll()方法

    public class ArraylistDemo { public static void main(String[] args) { Collection list1 = new ArrayLi ...

  9. php高级

    php面试题之一--PHP核心技术(高级部分) 一.PHP核心技术 1.写出一个能创建多级目录的PHP函数(新浪网技术部) <?php /** * 创建多级目录 * @param $path s ...

  10. 完整的定时任务解决方案Spring集成+定时任务本身管理+DB持久化+集群

    完整的定时任务解决方案Spring集成+定时任务本身管理+DB持久化+集群 maven依赖 <dependency> <groupId>org.quartz-scheduler ...