I've been working on a .NET personal project for a little while now and it's almost ready to go open source.

I've decided (arbitrarily) to host it on codeplex. Codeplex offers TFS or mercurial.

I'm wondering which I should pick. Consider:

  • I've only ever used subversion.
  • I'm using VS 2010 express as my IDE.
  • Tools must be free (so the mercurial client if I go that route).
  • From what I've been hearing, mercurial sounds interesting but I know very little about it so if there's a learning curve, then I don't want to add too many more learning objectives to the project.
  • I don't expect any contributors.

So I guess the actual question is, is mercurial easy enough to use with codeplex and does it add anything that the TFS option doesn't?

3 Answers 3



I like Mercurial provided you install TortoiseHG and VisualHG tools.

The best feature is that you can create a "branch" to try out some funky new code by just copying your enlistment directory in Explorer. This copy will sync back to Codeplex without changing any settings if all goes well. If it goes poorly, delete the directory and 'all is forgiven'.

  • +1 for listing the tools necessary for a great experience.
    – Ryan Hayes
    Oct 22, 2010 at 18:53
  • 4
    +1 go Hg. Also because you are coming from svn check out: hginit.com Oct 23, 2010 at 0:27
  • @thomas, I think hginit is very helpful even if you are not coming from svn. Only the first page is for svn.
    – JD Isaacks
    Apr 4, 2011 at 17:50
  • One thing to add about Mercurial: you can host on bitbucket then do hg push https://hg01.codeplex.com/projectname and you get the entire changeset history replicated. It's far easier to use for 1-5 man FOSS projects than TFS
    – Chris S
    Apr 5, 2011 at 10:17
  • So, it's been a while, and I went Mercurial, and to check back in: Loved it. I initially had to get over the hump of how a DVCS works, but it turns out that I liked it a lot more with my workflow. I like to checkin as much as possible, but not pollute the repo with unfinished code/features. The division between committing and pushing was a game changer that worked very nicely for me. Aug 17, 2011 at 0:32

Definitely Mercurial. It's far easier to use for small OSS projects than TFS, particularly 1-man projects. It's a lot speedier too - TFS doesn't seem to lend itself well (in my experience) to remote working.

One thing to add about Mercurial: you can host your project elsewhere, e.g. Bitbucket, and a simple

hg push https://hg01.codeplex.com/projectname

will replicate the entire changeset history onto codeplex. One of Codeplex's pro's is the .NET community it has is a lot larger than Bitbucket, so it's always good to have a project hosted on it, even if it's not the main hub.

I wouldn't bother using TortoiseHG with VS2010 if you've come from Subversion - it's literally 3 commands to commit a change:

hg addremove
hg commit -m "My commit message"
hg push

Use Shift+click in explorer to a command prompt window for the folder. And then it's One command to update if you have no merge issues:

hg pull -u

One command to see the current status:

hg status

One command to create a label (tag in Mercurial lingo)

hg tag "Version 1"

One command to grab a repository fresh

hg clone https://hg01.codeplex.com/myproject

Don't forget to give your root directory a .hgignore file so your binaries aren't committed.

And the nicest thing you lose with ditching Subversion: those annoying .svn directories scattered in every $&!$$£" folder.


You can also connect to Codeplex from your Visual Studio by installing Team Explorer 2010.

Checkout this blogpost for detailed steps to connect Codeplex from TeamExplorer.

  • I think this won't work with the Express version of the Visual Studio.
    – Regent
    Apr 5, 2011 at 14:39
  • Yes,it won't work because Express version doesn't integrate with Team Explorer.
    – Jehan33
    Apr 6, 2011 at 10:58
  • Team Explorer can be used in a standalone mode, which may be less than ideal (but might suit other contributors) Mar 25, 2012 at 20:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.