Microsoft development tools such as Visual Studio and Team Foundation Server now support Git, the open-source distributed version control system for software projects originally built by Linux creator Linus Torvalds.
“We’ve fully integrated Git support into Visual Studio,” a Microsoft representative told me. “From Visual Studio and within the Application Lifecycle Management tool, you’ll be able to access Git projects on any Git server.”
Microsoft announced the surprising news today at ALM Summit, the company’s application lifecycle management conference. Git is a wildly popular way to share projects, move code, collaborate with developers locally and globally, and roll back changes that don’t quite work out the way they were intended.
While millions of developers use Git — including two million on the popular GitHub alone — it hasn’t been quite as friendly a developer tool on Windows as on other platforms, Microsoft said. Git is “virtually synonymous”with distributed source control, Microsoft fellow Brian Harry acknowledged in his keynote this morning announcing the move, and Microsoft, which traditionally has centralized source control, has not had a similar type of distributed version control system.
So in a classic if-you-can’t-beat-em-join-em moment, the question that Microsoft asked itself was “Why don’t we just adopt Git?” Harry said.
The new integration is already enabled this morning in Team Foundation Server, Microsoft’s own source control software. And Visual Studio 2012 will soon be able to connect to any Git host, such as TFS, CodePlex, GitHub, and Stash, via a plugin.
One of the things that Microsoft has done over the past few months in preparation for this move is to contribute to the open source codebase. Today, a representative told me, Microsoft has “a number of full-time engineers actively working on and contributing to the lib2git project.”
Microsoft is not simply copying files over to its one source management services, Harry said, although syncing is available. Rather, the integration is native.
“Our hosting of Git is not Microsoft hosting of Git … it’s Git,” Harry added. “This is a fully functioning and compatible Git client.”
While this may be a surprising, even shocking development, it’s been in the making for quite some time, Harry posted on his MSDN blog:
We started talking about having DVCS support for TFS a year or more ago. I even mentioned at the end of this post over a year ago that DVCS was in our future. After a few months of investigation (in the middle of working on TFS 2012), we concluded that adding Git support was the right approach. As I write this, I’m wondering what the reaction among our customers will be but I can say the reaction inside my own team when we first proposed this was quite mixed. There were certainly plenty of people who wanted to “build a better DVCS system” or integrate DVCS workflows into the existing implementation. There were others who were concerned about open source and lack of “control” issues. But, the more we looked at it, the more it looked like the right thing to do.