Well, thank you all, pals!  I'll try darcs in near future.

As for me I try to make each commit to present a project's state which compiles; I like when commit have a description with easy to follow diffs (so all staged chages should be logically connected).  Sometimes I'm squashing minor commits into larger one.

The worst disadvantage is that I got used to `magit` very much.  Is there anyone who tried (or thought at least) to implement something similar for Darcs?