博主:

翻译自微软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. .NET零基础入门之02:源码控制管理器的使用

    一:概述 源码控制管理器,也叫"版本控制"软件,用于存储.追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是专业软件公司的基础工具.它主要是协助在多人团队中控制代码,防 ...

  2. 使用GIT进行源码管理 —— 在VisualStudio中使用GIT

    GIT作为源码管理的方式现在是越来越流行了,在VisualStudio 2012中,就通过插件的现实对GIT进行了官方支持,并且这个插件在VS2013中已经转正.本文在这里简单的介绍一下如何在Visu ...

  3. redhat6.3下源码编译方式安装最新版git

    在linux下安装git,通过yum方式安装的不是最新版本. 要替换最新版需要以下操作. 1.安装依赖包 # yum install curl-devel expat-devel gettext-de ...

  4. 【转】Android源码学习(2)使用Git和Repo进行版本管理

    原文网址:http://blog.chinaunix.net/uid-26074270-id-2458828.html Android项目采用Git和Repo进行版本管理.在大多数情况下,Git都可以 ...

  5. git 源码安装后报错/usr/bin/git: No such file or directory

    现象 今天源码安装一个git后,执行git命令后报如下错误: $ git --version -bash: /usr/bin/git: No such file or directory 分析过程 开 ...

  6. 解决方案:将已存在的项目 添加到 tfs解决方案中的时候 出现:新项目不能成功加入源码控制

    遇到此问题 可能是因为你的 解决方案文件 没有正确与 tfs服务器绑定导致的 解决方式是: 在打开任意一个源码文件的时候,打开 vs2013的 文件>> Go to File->So ...

  7. Orchard源码分析(1):Orchard架构

      本文主要参考官方文档"How Orchard works"以及Orchardch上的翻译.   源码分析应该做到庖丁解牛,而不是以管窥豹或瞎子摸象.所以先对Orchard架构有 ...

  8. 微信小程序源码推荐

    wx-gesture-lock  微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...

  9. 微信小程序源码案例大全

    微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo: ...

随机推荐

  1. Android实现批量照片上传至server,拍照或者从相冊选择

    近期因为项目需求,须要完毕批量照片上传,折腾了一段时间,最终完毕了,达到了例如以下效果 主界面主要有GridView组成和button组成,当按下一个格点时,会调用相机或者相冊,拍照或者选择相冊照片, ...

  2. netty参考

    前言 问题 现如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用. 然而,有时 ...

  3. 菜鸟调错(五)——jetty执行时无法保存文件

    背景交代: 上一篇博客写的是用jetty和Maven做开发.測试.在使用的过程中遇到一个小问题.就是在jetty启动以后,改动了jsp.xml等文件无法保存. 错误信息: 解决方式: 到Maven库( ...

  4. opencv提取surf特征点出现的错误

    opencv实现surf特征的提取.本来是一个非常easy的代码,结果我执行时却出现了各种错误,以下来谈谈我出现的错误及问题的解决过程. 首先,我把提取surf特征的过程整合成了一个函数,我单独建立一 ...

  5. 微信小程序 如何定义全局函数?

    微信小程序 定义全局数据.函数复用.模版等 微信小程序定义全局数据.函数复用.模版等问题总结: 1.如何定义全局数据 在app.js的App({})中定义的数据或函数都是全局的,在页面中可以通过var ...

  6. cocos2d-x 3.1.1 学习笔记[11] http请求 + json解析

    //http须要引入的头文件和命名空间 #include <network/HttpClient.h> using namespace network; //json须要引入的头文件 #i ...

  7. java IO,bufferedReader类

    1,掌握bufferedreader类作用 2,掌握键盘输入的基本格式. Buffer:表示缓冲区,之前的StringBuffer,缓冲区中的内容可以更改,可以提高效率. 如果要想接收任意长度的数据, ...

  8. Java 遍历一个对象的属性 将非空属性赋值给另一个对象

    //将origin属性注入到destination中 public <T> void mergeObject(T origin, T destination) { if (origin = ...

  9. 初次玩耍lucene.net,一个小小的记录

    lucene.net虽说是强大,但是我还是一年前第一次玩耍,然后就没有然后了,最近准备养成记录博客的习惯了,所以又玩了玩,回来记录一下 首先新建一个类,便于调用 public class Lucene ...

  10. Coolite简介

    Coolite Toolkit 简介 Coolite Toolkit 是一个支持ASP.NET AJAX的Web控件 Coolite Toolkit是基于跨浏览器的ExtJS 库开发而来的,并且简化了 ...