Tag Archives: git

Microsoft’s Visual Studio and Team Foundation Server get Git integration

Microsoft has announced Git integration in both the Visual Studio IDE and the Team Foundation Service hosted source code management system. According to Technical Fellow Brian Harry:

1. Team Foundation Server will host Git repositories – and more concretely, Team Foundation Service has support for hosting Git repositories starting today.

2. Visual Studio will have Git support – and concretely, we released a CTP of a VSIX plugin for the Visual Studio 2012 Update 2 CTP today.

Git is an open source version control system originally designed by Linus Torvalds to support the development of the Linux operating system. It is a distributed version control system, which means every working directory is itself a full repository, enabling easy forking and offline work.

Team Foundation Service is a version of Team Foundation Server hosted by Microsoft.

Git integration was also recently added to Perforce, another version control system, in the form of the Perforce Git Fusion add-in, emphasising the fact that Git is now a mainstream, enterprise revision control system.

Microsoft open sources further ASP.NET Frameworks, publishes code with Git

Microsoft has released two further ASP.NET frameworks as open source, joining ASP.NET MVC which was already open source. These are published on CodePlex, Microsoft’s open source repository site, using the newly added Git support. You can find the code here.

The two additional frameworks are ASP.NET Web API and ASP.NET Web Pages. Just to recap, ASP.NET supports several frameworks:

ASP.NET Web Forms: the original framework shipped with .NET 1.0 and greatly enhanced since then. Excellent for quickly assembling a dynamic web site but somewhat heavyweight with its ViewState field and complex page lifecycle. Designed in pre-Ajax days.

ASP.NET MVC: A more elegant framework with separation of content from code, amenable to test-driven development, based on controllers and routing.

ASP.NET Web Pages formerly known as Razor: An alternative view engine designed to work with ASP.NET MVC. Uses .cshtml or .vbhtml extension in place of .aspx. A declarative language with codewords like @foreach and @if – though Microsoft’s Scott Guthrie says it is not a language but rather a template markup syntax.

ASP.NET Web API: formerly known as WCF Web API is a framework for building REST services. A key framework if you have a cloud + mobile target in mind. Now gets installed with ASP.NET MVC.

So why is ASP.NET Web Forms not open source? According to Microsoft’s Scott Hanselman:

The components that are being open sourced at this time are all components that are shipped independently of the core .NET framework, which means no OS components take dependencies on them. Web Forms is a part of System.Web.dll which parts of the Windows Server platform take a dependency on. Because of this dependency this code can’t easily be replaced with newer versions expect when updates to the .NET framework or the OS ships.

though it is not clear why this prevents the code being published.

Hanselman adds that Microsoft is not only publishing the code, but also taking contributions:

Today we continue to push forward and now ASP.NET MVC, Web API, Web Pages will take contributions from the community.

Why is Microsoft doing this? Within Microsoft, there have always seemed to be open source advocates like Hanselman, and others who pull back. One answer is that the open source folk are winning more arguments now.

Another take is that this is the outcome of industry-wide changes. Microsoft’s platform is less dominant than it was; it still reigns on the desktop, but Macs, tablets and smartphones are eroding its position on the client, and on the web Netcraft’s figures show steady decline since June 2010:

image

Most of the competition is open source and it is possible that this is a factor behind the latest moves. Microsoft is not open sourcing its IIS web server yet, though Hanselman does make the point that ASP.NET MVC runs well on Mono, the open source implementation of the .NET Framework, which is often used with Apache.

Subversion 1.7 released: just one .svn directory per working copy

Yesterday saw the 1.7 release of Subversion, the widely used open source version control system. It is a significant release with many new features, bug-fixes and performance improvements, and I suggest reading the release notes or complete change log. One thing to highlight is that the default working copy metadata storage is now a single sqlite database per working copy, rather than a .svn direction containing metadata in sub-directory.

I upgraded my TortoiseSVN, which is already updated to 1.7, and tried upgrading one of my own projects. Here is the .svn folder before the upgrade:

image

and after

image

Those pesky .svn folders can be a nuisance so this is a welcome change, although there is a downside as the release notes warn:

It is not safe to copy an SQLite file while it’s being accessed via the SQLite libraries. Consequently, duplicating a working copy (using tar, cp, or rsync) that is being accessed by a Subversion process is not supported for Subversion 1.7 working copies, and may cause the duplicate (new) working copy to be created corrupted.

Subversion is less fashionable since the advent of distributed version control systems like git and mercurial; though for corporate development Subversion remains popular because a centralised system is easier to control.

WANdisco’s Jessica Thornsby has a helpful post on the new 1.7 features more details on the benefits of the new working copy metadata managements system.

Rumblings in the Subversion community as WANdisco claims to be “shaking it up”

Subversion is an open source version control system used by developers to manage source code; it was an improvement over CVS which it to some extent replaced. Everyone loved it until Linus Torvalds came up with an alternative called Git which is better suited for the distributed development typical of large open source projects like Linux. Now everyone loves Git – with a bit of love left over for another distributed system called Mercurial – and Subversion has become a tad unfashionable, though still widely used.

David Richards is president and CEO of WANdisco, which has a source code management suite based on Subversion. He has announced his intention to “shake up Software Change Management” by fixing Subversion’s weak points. He writes:

Enough is enough. Subversion gets a lot of criticism due to the shortcomings of branching and merging, especially when compared with GIT and others, and we simply don’t have the time to debate whether or not this should be done when it clearly should be.

Why so combative? Well, there a few curious points here. Subversion was originally sponsored by Collabnet, which has its own ALM (Application Lifecycle Management) suite which uses Subversion, as well as a free product called Subversion Edge which packages the official open source release with some convenient tools. Subversion did not become a top-level Apache project until February 17 2010. According to Richards, there is now competition between commercial companies to be seen as the primary Subversion sponsors. In a blog post today, Richard refers to “commercial interests that are dependent on the perception that they are the ones developing Subversion” and adds:

We also believe it’s unhelpful when certain unscrupulous committers decide to commit trivial changes in large files to simply get their stats up.

Richards feels that Subversion development has stagnated:

Didn’t the community just announce a road map? Yes they did, but that’s pretty much all that happened (and that really pisses us off.) The commit logs (code committed by developers to the project) tell the real story. We are not happy with the volume, speed or participation on the project right now. Blogging, or answering questions on user lists are important, but so is writing source code.

The not-so-veiled threat in Richards’ post is that he will fork Subversion if necessary. He says “we don’t believe that [forking] is necessary” but when he adds later that “we would prefer that this be a community effort” it seems clear that forking is an option.

Richard says that WANdisco held a “summit” of companies with a vested interest in Subversion and that there was “a common theme: branching and merging must improve.”

Personally I like Subversion though it is also obvious that Git is superior for many projects. Richards does not help his cause by accusing “GIT Fanatics” of being unfair in their criticisms.  The comments to his post are worth reading, for example:

I used Subversion without prejudice over CVS because it was better. Today I use Git without prejudice over the other two. Git has changed how I work. I use facilities in Git that are not possible with Subversion or CVS.

Developers who take this view will not care much now about Subversion. Still, a lot of people still use it, probably many more than those who use Git, and improvements would be welcome. I am not clear though why the CEO of WANdisco is sounding so embattled, or what politics or difference of opinion is dividing the Subversion community, and would like to hear more about it.

Update: clarified that Subversion Edge is a free product

Update 2: The Apache Software Foundation replies in a blog post:

WANdisco’s false implication that it is in some kind of steering position in Subversion development discredits the efforts of other contributors and companies … we welcome WANdisco’s involvement in Subversion, and failure on WANdisco’s part to address the above concerns will have no effect on the acceptance of technical work funded by WANdisco. We simply felt it necessary to clarify WANdisco’s role in Apache Subversion, for the benefit of our users and potential contributors.