views:

511

answers:

3

I'm an experienced git user now working with people who use Mercurial. I really miss 'git gui' for helping me with my commits. I see that two tools, qct and hgct, both support Mercurial.

The things I like best about git gui is that it shows all uncommitted files (and untracked files) and makes it easy for me to add whole files or individual diff hunks into a commit/changeset. With that in mind, which tool am I likely to prefer, qct or hgct? And from your experience, are there other grounds for preferring one tool over the other, and if so what are they?


EDIT

I installed qct, hgct, and tortoisehg on a standard Debian testing system. Of the three, qct was the only one to work out of the box. But to do anything interesting, it seems to require a third-party tool like diffmerge. (The web site claims otherwise, but Debian has not yet caught up to reality.)

I found qct quite frustrating. Problems include:

  • Cannot view more than one diff at a time
  • Cannot skip all remaining diffs with one mouse click
  • Cannot go backwards!

My tortoisehg installation experience was frustrating. .deb files are promised on the web site, but they do not exist. Pulling from the latest stable version gave me a tool that simply produced a stack trace on every invocation. (I found a fix, but really!) After upgrading to the latest Debian unstable hg, however, I was very impressed with the Tortoise Hg commit tool. It is far and away the best approximation to git gui.

And as an afterthought, hgct was a clear loss:

picture of hgct lossage on Debian testing

Tortoise Hg is the clear winner.

+1  A: 

I personally use qct and what I've seen from git gui, qct comes close to it. If you additionally use the qct extension for mercurial you can enhance it a bit more. Another pro of qct is the platform neutrality. I don't know which system you're using, but I run it very satisfying under Linux and Windows. If you use Windows then you could also try TortoiseHg which brings a commit tool, as I remember it's called hgtk. But it should also be possible to run it standalone under Linux since it's written in Python. As I have seen hgct doesn't seem to be actively developed anymore and the last code change was about 2007 so I wouldn't bet that all actual features of mercurial are supported. So I would suggest using qct.

phoenixh
v helpful answer especially qct extension. thanks.
Norman Ramsey
I use the TortoiseHg changeset browser daily under Linux, so I can confirm it works.
Martin Geisler
A: 

Slight off-topic, but still...

Quite a while ago I was using TortoiseSVN and liked it a lot. It has the best VCS UI under Windows (if not the best overall). It has lots of tiny little things, which are helping you.

Then I had to do some development on several computers (at work, at home, etc) with no central repository - I started looking for something less centralized. Git was the most powerful one, but it's implementation under Windows is not as bright as Unix's one. Mercurial was the second best and it has become the best one for me since that time.

The only difference between the way I was using TortoiseSVN and how I'm using Mercurial now is that I do all the stuff using command line. It is much faster comparing to UI version of any VCS. Of course, there are few cases now and then, when it's hard to manage without some graphical representation or rich UI. The only case I can remember now is 3-way merging.

So, to summarize my point - if you've never tried using command line interface only, just try it for couple of weeks. It is a bit hard for the first few days, but then... You get information much faster - with the speed of your fingers, which are usually faster and much more precise then your arm as a whole, which is needed to use mouse.

Just try it, you may like it. :)

PS. Please don't treat my answer as an attempt to teach you - I'm sharing my own experience, which might be useful for you as well.

Serge Broslavsky
Serge, I'm a huge fan of the command line and I hate the mouse, but for breaking up a large number of diffs into a sensible group of commits/changesets, I find the GUI invaluable. I do everything else on the command line.
Norman Ramsey
+2  A: 

Like Serge, I'm mostly a command line guy... but let me just note that the TortoiseHg tool is cross-platform -- it took me a very long time to realize this :-)

I only use their changeset browser (because it's fast and looks good), but they also supply a commit tool which will show uncommitted and untracked files and let you select individual hunks (like hg record on the command line). They have a bunch of screenshots available, which might give you a feel for the interface.

Martin Geisler
Martin,nice suggestion, but I cloned the stable repo and got a stack trace from 'hgtk commit'. Sadly the promised .deb is not o nthe web site, and following the installation instructions gives me a stack trace whenever I try anything. Very disappointing, but +1 for the info anyway.
Norman Ramsey
Could it be that you mixed a pre-1.3 version with the latest version of TortoiseHg? Mercurial 1.3 has just been released yesterday and TortoiseHg makes releases in sync with Mercurial. By the way, both can be used without installing them: get Mercurial and do "make local; ln -s hg ~/bin" and get TortoiseHg and do "ln -s hgtk ~/bin". That should be all.
Martin Geisler