Mercurial is a fast, open-source DVCS (Distributed Version Control System).
Mercurial is a distributed version control system, dvcs. It is dedicated to speed and efficiency with a sane user interface. The main part of the code is written in python, with a small part in c. The project is open-source, distributed under the GPL.
External Links ==============
- Homepage
- Introduction
- Exercises
- Wiki
- Bug tracker
- Mailinglist
- Mercurial: The Definitive Guide
- Windows shell extension (tortoisehg)
- Meet Mercurial | Peepcode Screencast
- Mastering Mercurial | TekPub Screencast
Please report bugs to the bug tracker instead of posting them here on Stack Overflow. Otherwise the Mercurial team may not see them, and you will become frustrated from the lack of response.
Internal Links ==============
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 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 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 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?
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 branch?
- How do you merge branches?
- How do you merge parts of one branch into another branch?