News broke Wednesday about Microsoft adding support for Git to Visual Studio, both in the client -- so that it can be used to work against any Git DVCS (distributed version control system) such as Gitorious or GitHub -- and on the server. The upshot is twofold: Those using Microsoft's proprietary centralized version control have a new escape route, and GitHub has a new competitor.
For me, the really interesting dimensions of this news were not so much about Microsoft's embrace of distributed version control, which is a simple matter of market forces, but rather what support for Git says about Microsoft and open source.
[ Also on InfoWorld: App stores can be open source-friendly. Just ask ... Microsoft? | Learn how to install Apache on Linux in InfoWorld Test Center's step-by-step guide. | Track the latest trends in open source with InfoWorld's Technology: Open Source newsletter. ]
Evidence of a warming trend
Microsoft has been on a charm offensive toward the open source community-of-communities for several years. Before that, it had been simply offensive, as epitomized by CEO Steve Ballmer's infamous assertion that Linux is a cancer -- to my knowledge, an epithet he's never withdrawn. (For more on Microsoft's historic hostility toward open source, check out the notorious Halloween Documents.) But at some point in the last few years, Microsoft's strategists finally wised up to the fact that, while they still feared open source, it was better to make peace.
We've recently seen three stories representing different fronts in that campaign. Last week I wrote about the extraordinary and welcome changes to the Windows Phone developer terms that actively favor open source licenses. The start of this week saw Microsoft recruit a prominent Apache community member, board member Ross Gardler, to its open technologies staff.
Then the Visual Studio news contained multiple elements, and Microsoft is clearly aware of the novelty they represent. First, Microsoft's product team leader felt the need to point out a lack of hatred toward open source in his blog: "In my own area, we dabbled (and in some cases made missteps) as we’ve learned our way [but] this is a pretty big milestone for us. This is certainly the first time that my team has engaged so deeply in an existing OSS project."
Second, and much more interesting at a technical level, Microsoft has chosen to implement Git rather than invent its own DVCS. The company has implemented it using an open source library, libGit2, which is also extensively employed by GitHub -- a competitor to Microsoft's Team Foundation Service. If collaboration with a competitor wasn't remarkable enough, libGit2 is licensed under the GPLv2, once declared cancerous by Ballmer as mentioned above. That's been made possible by a generous "linking exception" in the libGit2 licensing, but remains surprising to anyone who's observed Microsoft's historical antipathy toward the GPL. Microsoft isn't just using the code -- it's also listed as a contributor.