Mercurial integration with Visual Studio

Published on Feb 19, 2010

I recently posted about how to integrate Git with Visual Studio. Of course Git is not the only DVCS out there.

Mercurial is another source control system similar to Git that is having more and more relevance. Google code have been supporting it for quite a while and recently Microsoft announced that Codeplex is adding it as an option for new projects. (Codeplex already supported TFS and Subversion).

At work we use Fogbugz as our bug tracking/project management tool. A few months ago the people at Fogcreek started a beta for Kiln a code review/source control system that runs on top of mercurial.

I sign up for the beta and have been running a pilot project on it. Since I really like it I decided to start moving all our projects to Kiln and ditch Subversion. The piece that I was missing was a good integration into VS for the rest of my team.

A few day ago I found Mercurial VSS an integration package for Mercurial into VS.

The installation is very simple, just select the version of VS you want to install against (version 1.0.7 released today integrates without problems with both VS 2008 and 2010 RC).

select_vs_version

After installed go to Tools ??”> Options and make sure you select display all options (only in VS 2008).

select_show_all_options

Select the Source Control option and in the Plug-in Selection option change it to Mercurial.

set_scs_plug_inn

After open a project (even one that is already under source control) you will need to select the Add to source control option from the contextual menu inside the Solution explorer.

add_to_sc

After added you will se a tilde besides each project.

solution_added

This are the options available from the contextual menu.

hg_menu_options

And a few screen captures of the different options.

Change log

Change_log

Commit

commit_window

History

history

Pull

Pull

Push

push

Revert

revert

Tags

taggingt

Update

Update_window

Conclusion

With the support from Codeplex and Google code to Mercurial and the tight integration that this plug in presents I see no reason why people will not use it as the DVCS of choice for .net open source projects hosted on those sites.