[hooks]
preoutgoing.confirm = read -p 'Are you sure you want to push to remote? (y/n): '; echo $REPLY | grep -q 'y'
(Note from philikon: I consider this hook pretty much useless. Mercurial will warn and abort if you're trying to with patches applied. So if you have any applied patches, it's very hard to accidentally push them. If you don't have applied patches, you're most likely not to have anything the remote repo doesn't have either.)
Also, useful path definitions: