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

博主:

翻译自微软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。每周推送内容,有技术也有生活,和你一起做一个有情怀的程序员。

时间: 2024-10-11 22:13:09

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

.NET零基础入门之02:源码控制管理器的使用

一:概述 源码控制管理器,也叫"版本控制"软件,用于存储.追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是专业软件公司的基础工具.它主要是协助在多人团队中控制代码,防止代码管理混乱.代码冲突,对代码拥有者进行权限控制等.最课程(www.zuikc.com)的.NET培训为了最大程度的对学员负责,从您刚入班就教会您怎么使用源码控制,并且我们的教师还会通过源码控制来修改您的代码. 源码控制主要存在如下的操作: 签入文件或目录 此操作将工作目录作为新版本复制回存储库. 签出文件

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

GIT作为源码管理的方式现在是越来越流行了,在VisualStudio 2012中,就通过插件的现实对GIT进行了官方支持,并且这个插件在VS2013中已经转正.本文在这里简单的介绍一下如何在Visual Studio中使用GIT进行源码管理. PS: 由于篇幅所限,本文并没有对相关基础知识进行介绍,在读取本文前,假定你已经对GIT有一定的了解,并且对VisualStudio的团队管理器比较熟悉,后续有时间的话再进行相关知识的介绍. 将项目添加到GIT源码管理 将项目添加到GIT源码管理和通过T

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

原文网址:http://blog.chinaunix.net/uid-26074270-id-2458828.html Android项目采用Git和Repo进行版本管理.在大多数情况下,Git都可以满足用户的需求.然而,由于Android项目过于庞大,想要简单.高效的管理这一百多个Git库,并不是一件容易的事情.Repo正是基于此需求,对Git命令部分封装,用来简化一些跨网络的操作. 安装Repo 创建repo所在的目录,并将目录加到PATH环境变量中 $ mkdir ~/bin $ PATH

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

遇到此问题 可能是因为你的 解决方案文件 没有正确与 tfs服务器绑定导致的 解决方式是: 在打开任意一个源码文件的时候,打开 vs2013的 文件>> Go to File->Source Control->Change Source Control. (in Visual Studio 2012/2013 it's File->Source Control->Advanced->Change Source Control) Look for the "

2278棋牌源码控制输赢,Redis Sentinel h5房卡斗牛棋牌平台出租高可用服务架构搭建

前几天,看到一篇H5房卡斗牛平台,H5房卡斗牛平台租赁,想法说得很好,但是没有建设过程,本文记录了Redis哨兵高av可服务性服务体系构建过程.    根据作者的第四个计划,        1.ReDIS是一个完全开源的.免费的.符合BSD的.高性能的密钥值数据库.    ReDIS和其他关键值缓存产品具有以下三个特征:    Redis支持数据持久性,将内存中的数据保存到磁盘,并在重新启动时再次加载.Redis不仅支持简单的键值数据,还支持列表.集合.zset.散列和其他数据结构.Redis支

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

本文主要参考官方文档"How Orchard works"以及Orchardch上的翻译. 源码分析应该做到庖丁解牛,而不是以管窥豹或瞎子摸象.所以先对Orchard架构有个整体的了解,以及对一些基本概念有所认识. 创建一个基于Web的CMS(内容管理系统)不同于创建一个普通的Web应用程序:它更像是建立一个应用程序容器. 这样一个系统,必须拥有优良的开放性.可扩展性.但是作为一个可扩展系统,它可能会面临应用程序"可用性"的挑战:在系统中的核心模块与未知的未来模块的

微信小程序源码案例大全

微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo:文章列表demo 微商城(含微信小程序)完整源码+配置指南 微信小程序Demo:一个简单的工作系统 微信小程序Demo:用于聚会的小程序 微信小程序Demo:Growth 是一款专注于Web开发者成长的应用,- 微信小程序Demo: Music-Player 微信小程序Demo:团贷网(投资) 微信

HashMap源码分析(JDK1.8)- 你该知道的都在这里了

我的csdn博客地址: http://blog.csdn.net/brycegao321 HashMap是Java和Android程序员的基本功, JDK1.8对HashMap进行了优化, 你真正理解它了吗? 考虑如下问题: 1.哈希基本原理?(答:散列表.hash碰撞.链表.红黑树) 2.hashmap查询的时间复杂度, 影响因素和原理? (答:最好O(1),最差O(n), 如果是红黑O(logN)) 3.resize如何实现的, 记住已经没有rehash了!!!(答:拉链entry根据高位b

nginx线程池源码解析

周末看了nginx线程池部分的代码,顺手照抄了一遍,写成了自己的版本.实现上某些地方还是有差异的,不过基本结构全部摘抄. 在这里分享一下.如果你看懂了我的版本,也就证明你看懂了nginx的线程池. 本文只列出了关键数据结构和API,重在理解nginx线程池设计思路.完整代码在最后的链接里. 1.任务节点 typedef void (*CB_FUN)(void *); //任务结构体 typedef struct task { void *argv; //任务函数的参数(任务执行结束前,要保证参数