7

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?

Steven Evers
  • 28,200
  • 10
  • 75
  • 159

3 Answers3

19

Mercurial

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'.

Jay Beavers
  • 2,321
  • 2
  • 18
  • 17
  • +1 for listing the tools necessary for a great experience. – Ryan Hayes Oct 22 '10 at 18:53
  • 4
    +1 go Hg. Also because you are coming from svn check out: http://hginit.com/ – Thomas James Oct 23 '10 at 00: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 04 '11 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 05 '11 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. – Steven Evers Aug 17 '11 at 00:32
4

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.

Chris S
  • 899
  • 6
  • 11
0

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.

Jehan33
  • 117
  • 3