This means you can commit whenever you want (even if your code doesn't work yet) without worrying about breaking anybody else's (or the production) install. You only need to worry about that when you push.
Committing often gives you a chance to make your changeset descriptions accurate and meaningful.
If you're just getting used to Mercurial (or git) and the idea of DVCS, don't worry about this yet. Going into the Kiln interface at khanacademy.kilnhg.com and making a new branch off of, say, the
In general, it's best to make a new branch and use that as your repository's parent/target whenever you need to share code with another team member but aren't ready for your code to be deployed. This can happen when you're working on a complicated feature, are in need of a code review, etc.
Likewise, when developing in github-land, feel free to go nuts with named branches whenever you're working on a feature.
I'm working on a completely separate piece of code (like a mobile app). Should I make a new repository or add code to the main one?
Make a new repository! We can have as many repositories as we want, and it's good to keep completely separate pieces in separate repositories. This way you can push your code whenever you want without worrying about disrupting progress on the main website.