微软曾经强烈反对开源软件温暖现在将采取不寻常的步骤,将由Linus Torvalds开发的开源程序合并到自己的开发工具中。
微软正在整合广泛使用Git这是一个分布式的版本控制和源代码管理(SCM)系统,将其整合到Visual Studio IDE (integrated developer environment)和Team Foundation Server (TFS)中,这是该公司为企业开发人员提供的两个主要工具。
(brrrrr:最令人讨厌的冰雪雕塑]
[相关:Git教程]
“TFS是企业中非常流行的工具,而Git是在开源社区中成长起来的,”微软技术研究员、TFS产品部门经理Brian Harry说。“通过使用Git,我们希望能够弥补这一差距,使它成为开源社区和企业的一个伟大工具。”
TFS是用于管理应用程序开发生命周期的软件,包括需求管理、项目管理、配置管理、测试和部署。微软还提供了一个托管版本的TFS,称为Team Foundation Service。
TFS已经有了一个内置的SCM来处理文档,并将变更存储在不断发展的代码库中。但是考虑到开发团队越来越分散在不同的位置,微软希望提供分布式SCM,在这种SCM中,开发人员可以在本地代码副本上工作,并且同步变化项目上的其他人。
微软决定部署一个已经广泛使用的SCM,而不是从零开始构建一个distributedA SCM。“Git对我们来说是正确的答案。”哈利说。
微软已经意识到Git在其用户中越来越受欢迎。去年,它发布了Git TFS桥,允许开发人员在本地机器上使用Git,同时将更改推送到TFS。
Torvalds从2005年开始在Git上工作在许可问题上出现分歧后BitKeeper是用来管理Linux代码库的商业代码库。
Torvalds专门设计Git来管理像Linux内核这样大的软件项目,Linux内核目前有超过1500万行代码,每两到三个月更新一次,并且是协同构建的全世界成千上万的开发者。
Torvalds和他的团队将该软件构建为一个全球分布式存储库,不会随着代码库的增长而降低响应时间。
在TFS中合并Git将是“对Git的真正采用”。它不是‘微软Git’,”哈利说。该公司将使用最广泛部署的Git版本libgit2,它是用C语言编写的。
在创建新项目时,TFS用户现在可以选择使用Git(将包含在TFS软件包中)或TFS自己的集中式版本控制系统。
“我们使用TFS的目标是让用户同时拥有最好的集中式版本控制系统和最好的分布式版本控制系统,”Harry说。
TFS可以使用Git存储库执行一系列功能,比如自动构建、测试和工作跟踪。随着时间的推移,Git将拥有与集中式TFS存储库相同的特性,并且还将与Active Directory和其他微软企业安全和审计工具绑定。
从周三开始,teamfoundation服务还将为客户提供托管版本的Git。
微软正致力于进一步开发libgit2。它将与GitHub和其他花时间开发软件的社区程序员合作。
微软工程师将会做的一些工作将围绕着使Windows版本更易于使用。Harry承认,在易用性方面,Windows版本的Git已经落后于Mac OS和Unix版本。“我们将帮助纠正这种情况,”哈利说。
除了在TFS中包含Git之外,微软还将Git与它的Visual Studio IDE链接起来。该公司发布了一个插件,允许用户将完成的代码直接提交到任何Git存储库。Git社区技术预览(CTP)插件与Visual Studio 12兼容,微软计划在下一个版本的IDE中支持Git。
Visual Studio可以与TFS上的Git部署、teamfoundation服务上的Git部署、GitHub托管服务或者其他Git部署进行通信,Harry说。
实际上,Visual Studio可以成为Git和开发人员的主要界面。“我可以连接、克隆存储库,在Visual Studio中打开项目,编辑文件并提交,”Harry说。
开发人员还可以看到提交给Git的代码更改,查看对代码所做的更改,切换到另一个代码分支,并将代码合并到项目的主线中。
“Git遇到了一个麻烦,问题变得相当复杂,”哈利说。“我们一直在尝试编纂使用Git最常见的模式,在Visual Studio中创建一个简单的工作流,使Git变得平易近人。”