From ArchWiki
Revision as of 10:15, 25 April 2012 by Fengchao (Talk | contribs) (Re category to version control system.)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Mercurial (commonly referred to as hg) is a distributed version control system written in Python and is similar in many ways to Git, Bazaar and darcs.


Mercurial is available from the standard repositories (see mercurial):

# pacman -S mercurial


At the minimum you should configure your username or mercurial will most likely give you an error when trying to commit. Do this by editing ~/.hgrc and adding the following:

username = John Smith

To use the graphical browser hgk aka. hg view, add the following to ~/.hgrc (see forum thread):


To remove Mercurial warnings of unverified certificate fingerprints, add the following to ~/.hgrc (see Mercurial wiki):

cacerts = /etc/ssl/certs/ca-certificates.crt


All mercurial commands are initiated with the hg prefix. To see a list of some of the common commands, run

$ hg help

You can either work with a pre-existing repository (collection of code or files), or create your own to share.

To work with a pre-existing repository, you must clone it to a directory of your choice:

$ mkdir mercurial
$ cd mercurial
$ hg clone

To create you own, change to the directory you wish to share and initiate a mercurial project

$ cd myfiles
$ hg init myfiles

Dotfiles Repo

If you intend on creating a repo of all your ~/. files, you simply initiate the project in your home folder:

$ hg init

It is then just a case of adding the specific files you wish to track:

$ hg add 

You can then create a ~/.hgignore to ensure that only the files you wish to include in the repository are tracked by mercurial.

Tip: If you include: syntax: glob at the top of the .hgignore file, you can easily exclude groups of files from your repository.

More Resources