I did notice the rather unclean look of most of the git GUIs. Once I play around with it, I may change my mind and just teach them command line. The actions the non-devs are likely to perform are so simple that I could probably just put together a batch file for them to run if they are having trouble.
You can use your SVN with an ALM platform like uberSVN http://bit.ly/ooTGgN which makes it much easier to use (and its free). I think that's the best option.
Though this is an old thread, since it popped up again I figured I'd share my decision.
We ultimately went with Mercurial. For those not familiar, it is very similar to Git. We were initially going to go with Git, but it was being annoying to set up (we wanted to set it up so we could do anonymous pushes without the need of Gitosis or a SSH shared key, since it's already behind our network). I got frustrated after a bit and went to look at Mercurial.
I pretty much love Mercurial. Aside from the setup issue, it's nearly identical to Git (even all the commands are the same). It's a distributed system. They also have a very handy TortoiseHG which is quite elegant and works very well.
Thanks for sharing your final decisions. I've never used Mercurial but may try it one day - I only know svn and git. I find working with git is a bit more convenient than svn, one of the few drawbacks is that it can't version empty folders. Does Mercurial also have this limitation?
It looks like it does. I created an empty folder and went to commit, but it didn't show up in the list. If I recall correctly, I read that it revisions individual files, not folders.
It doesn't have the repo/repo.git mentality too. It's all in one place (some people may not like that, but I do).
There are several hg servers, but the built in one (hg serve) with a little configuring has served as quite well. We have it on our internal network so we don't do any authentication (since you have to authenticate to get onto the network). I'm not sure what kind of authentication is has, but it seemed to have lots of good choices.
If you're familiar to Git, it really is almost identical (commit, branch, push, pull, rollback, etc. are all basically identical).
The two big things that let us make our final decision over git were:
- Ease of setting up the hg server how we wanted (literally took me less than a half hour from knowing nothing to having it exactly how I wanted).
- TortoiseHG, which is far and away better than any of the available Git graphical tools.
To me, Mercurial is essentially just a more modern version of Git.
I think you made a great choice. I have a team that is set up on mercurial and they are very happy. With the popularity of github.com, git has somehow developed a kind of an odd culture around it - social programming sounds good but I am more concerned with software delivery and mercurial does the job well!