I am about to tell you some stuff about Mercurial that will save you a lot of frustration.
Use Mercurial 1.0 or later. (
hg version to check.)
Configure your merge program. The #1 source of frustration. You know how CVS leaves conflict markers in your files sometimes? Mercurial, by contrast, wants you to fix the conflicts right now, using a merge program (like
kdiff3) which it launches for you.
By default, Mercurial uses the first merge program it finds on your system, and most merge programs are incomprehensible to most people. If you don't get the merge exactly right, Mercurial has no way of knowing. It won't loudly complain and prevent you from committing a bad merge. And bad merges are bad news. Sometimes it takes people days to find out what went wrong. Grown men have been known to walk away from whole hg trees, citing inexplicable hg behavior, literally abandoning work because of a bad merge. Bottom line: You will be well and truly screwed if you don't configure and test a merge program that makes sense to you. DO IT NOW. See MergeProgram in the Mercurial wiki.
If you use Mercurial Queues, back up your work. Use
hg qinit -c to create a backup repository for your patches and
hg qcommit -m backup regularly.
Don't use Mercurial Queues in a repository that someone might pull from. Just don't.
If you are confused about the state of your repository:
- Don't randomly try stuff to see if it'll magically fix it. Keep in mind what you stand to lose, and set down the chainsaw while you still have one good arm.
- Ask for help on IRC in #developers.
- Learn how to use read-only commands (
hg diff) to check the status of your repository. A key skill.