On Thu, 28 Oct 2010 00:33:54 +0300, Jérôme M. Berger <jeber...@free.fr> wrote:

        The only true advantage that Git has over Mercurial is the staging
area, and even that is a two edged sword: IMO it should not be
enabled by default since it helps people to lose data. And the same
functionality can be emulated (and superseded) in Mercurial with
record and mq anyway.

Could you please explain to me how can the staging area cause you to lose data? The only way I see that can happen is if you forget that you staged some changes, then do "git diff" and think that your working directory (and index) are clean.

- It is safer on Windows: in six years, I have never had a data loss
or corruption, whereas I've had both with Git in a two days test
without doing anything special;

Sorry, I don't consider this to be true at the moment based on my experience.

- Repositories are smaller on Windows (ok, that's not so important
given the price of HDDs today);

How does that make sense? Doesn't Git use the same disk storage format everywhere? :o

- You know someone who uses it and will be able to guide you through
all the pitfalls;

For the record, I wish I had found this earlier:
http://eagain.net/articles/git-for-computer-scientists/
For a long time I was confused about what branches and tags really are.

- You really, really, really *always* need the staging area so you
want to have it by default instead of using mq. If that is the case,
you will probably wind up using quilt anyway (quilt is the Git
equivalent for mq).

I think the staging area is an amazing feature, and I use it all the time, but perhaps not in the way you imagine:

1) Hack up a bunch of changes
2) Fire up git gui
3) Quickly stage the chucks or lines you want to go into the first commit (one case where using a mouse-driven GUI is way more productive...)
4) Type commit description, Ctrl+Enter to instantly commit
5) Repeat, until working directory is clean

This allows me to work freely on my code and edit different parts of it, without having to worry that I should first commit / shelve unrelated changes first.

Anyway, you make a convincing argument. I know that Hg's GUI tools are more mature than Git's Tcl/Tk hacks (the official versions saw no improvement since I started using Git), so it's worth looking at as a DVCS client. Bazaar's GUI looks pretty mature as well.

(I dream of a day when I can cherry-pick by dragging and dropping commits, and rebasing by selecting a range of commits and dragging-and-dropping it on another branch. I don't think any Git GUIs have this.)

--
Best regards,
 Vladimir                            mailto:vladi...@thecybershadow.net

Reply via email to