Inspired by Git for beginners: The definitive practical guide.
This is a compilation of information on using Mercurial for beginners for practical use.
Beginner - a programmer who has touched source control without understanding it very well.
Practical - covering situations that the majority of users often encounter - creating a repository, branching, merging, pulling/pushing from/to a remote repository, etc.
Notes:
- Explain how to get something done rather than how something is implemented.
- Deal with one question per answer.
- Answer clearly and as concisely as possible.
- Edit/extend an existing answer rather than create a new answer on the same topic.
- Please provide a link to the the Mercurial wiki or the HG Book for people who want to learn more.
Questions:
Installation/Setup
- How to install Mercurial?
- How to set up Mercurial?
- How do you create a new project/repository?
- How do you configure it to ignore files?
Working with the code
- How do you get the latest code?
- How do you check out code?
- How do you commit changes?
- How do you see what's uncommitted, or the status of your current codebase?
- How do you remove files from the repository?
- How do you destroy unwanted commits?
- How do you compare two revisions of a file, or your current file and a previous revision?
- How do you see the history of revisions to a file or repository?
- How do you handle binary files (visio docs, for instance, or compiler environments)?
- How do you merge files changed at the "same time"?
- How do you revert a Changeset?
- How do you go back to a previous version of the code?
- How do you extract a patch from a specific changeset?
- How do you record that you renamed or deleted a file without using the Mercurial command?
Tagging, branching, releases, baselines
- How do you 'mark' 'tag' or 'release' a particular set of revisions for a particular set of files so you can always pull that one later?
- How do you pull a particular 'release'?
- How do you branch?
- How do you merge branches?
- How do you merge parts of one branch into another branch?
Other
- Good GUI/IDE plugin for Mercurial? Advantages/disadvantages?
- Any other common tasks a beginner should know?
- How do I interface with Subversion?
Other Mercurial references
- Mercurial: The Definitive Guide
- Mercurial Wiki
- Meet Mercurial | Peepcode Screencast
- Mastering Mercurial | TekPub Screencast
- Hg Init - ground-up Mercurial tutorial
hg add
ignored files Mercurial will track them. For example, if you have a bunch of files likedeploy-test.conf
,deploy-production.conf
, etc and don't want to version them (they might have passwords in them) but you do want to versiondeploy-template.conf
you can just ignoredeploy*
and manually adddeploy-templace.conf
. – Sedate