From Open Source Ecology
Jump to: navigation, search

Mercurial, a.k.a. Hg, is a distributed source control management tool


Basic Concepts

  • Working copy: Root folder where your project files are located;
  • Repository (a.k.a. repo): Inside every working copy folder, there's an .hg folder, which is an Hg repository. It stores all change history of your files. Every project developer has one. You can also choose to have a main repository in a specific computer.
  • .hgignore: Similar to .cvsignore. Located at the root of the working copy. Specifies which files to ignore.
  • commit: Stores inside the .hg folder (i.e. the local repository) the changes made to the working copy. A commit is stored as a new changeset;
  • changeset: Conveys the changes made to a previous state of the repository. Each changeset has a changeset id, which is a globally unique identifier. Each changeset has a comment;
  • pull: Brings changesets from a different repository to your local one (only changesets that you don't already have);
  • push: Sends changesets from you local repository to a different one (only changesets that don't already exist on the other repository);
  • clone: Similar to SVN's checkout command. When you want to work on a project that you don't have, you clone the project's repository

Quick Start

  • Create a project and commit
$ hg init (project-directory)
$ cd (project-directory)
$ (add some files)
$ hg add
$ hg commit -m 'Initial commit'
  • Clone a project and push changes
$ hg clone
$ cd hello
$ (edit files)
$ hg add (new files)
$ hg commit -m 'My changes'
$ hg push

Main Links

More Information

See Also

  • Pacha - Uses Mercurial to backup and manage software configuration files from single or multiple server instances across the network.