Mercurial-4.9

#### Beyond Linux® From Scratch - Version 2019-02-27

### Chapter 13. Programming

- Prev

  Lua-5.3.5

- Next

  NASM-2.14.02

- Up
- Home

# Mercurial-4.9

## Introduction to Mercurial

Mercurial is a distributed source control management tool similar to Git and Bazaar. Mercurial is written in Python and is used by projects such as Mozilla and Vim.

This package is known to build and work properly using an LFS-8.4 platform.

### Package Information

- Download (HTTP): https://www.mercurial-scm.org/release/mercurial-4.9.tar.gz

- Download MD5 sum: ec804d7f8cb611639894f6211943db6e

- Download size: 6.7 MB

- Estimated disk space required: 70 MB (add 663 MB for tests)

- Estimated build time: 0.4 SBU (add 9.9 SBU for tests using -j4)

### Mercurial Dependencies

#### Required

Python-2.7.15

#### Optional

docutils-0.14 (required to build the documentation), git-2.20.1, GnuPG-2.2.13 (gpg2 with Python bindings), OpenSSH-7.9p1 (runtime, to access ssh://... repositories), Subversion-1.11.1 (with Python bindings), Bazaar, CVS, pyflakes, pygments, and pyOpenSSL

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mercurial

## Installation of Mercurial

Build Mercurial by issuing the following command:

    make build

To build the documentation (requires docutils-0.14), issue:

    sed -i '/runrst/s/N)/N)3/' doc/Makefile &&
    2to3-3.7 -w doc/hgmanpage.py            &&
    make doc

To run the test suite, issue:

    rm -rf tests/tmp &&
    TESTFLAGS="-j<N> --tmpdir tmp --blacklist blacklists/failed-tests" make check

where `<N>` is an integer between one and the number of ( processor X threads ), inclusive. In order to investigate any apparently failing tests, you may use the run-tests.py script. To see the almost forty switches, some of them very useful, issue tests/run-tests.py --help. Running the following commands, you will execute only the tests that failed before:

    pushd tests  &&
      rm -rf tmp &&
      ./run-tests.py --tmpdir tmp test-gpg.t
    popd

Normally, the previous failures will be confirmed. However, if you add the switch "--debug" before "--tmpdir", and run again, some failures are gone, which seems to be a problem with the test suite. If this happens, normally, from now on, there will be no more such failures whether you use the debug switch or not.

An interesting switch is "- -time", which will generate at the end of the test suite execution, a table with all executed tests and respective start, end, user, system and real times. Notice that the switches may be used with make check, including them in the `TESTFLAGS` environment variable.

Install Mercurial by running the following command (as `root`):

    make PREFIX=/usr install-bin

If you built the documentation, install it by running the following command (as `root`):

    make PREFIX=/usr install-doc

After installed, two very quick and simple tests should run correctly. First one needs some configuration:

    cat >> ~/.hgrc << "EOF"
    [ui]
    username = <user_name> <user@mail>
    EOF

where you must replace <user_name> and <your@mail> (mail is optional and can be omitted). With the user identity defined, run hg debuginstall and several lines will be displayed, the last one reading "no problems detected". Another quick and simple test is just hg, which should output basic commands that can be used with hg.

## Command Explanations

sed -i '/runrst/s/N)/N)3/' doc/Makefile: force use of Python 3 for commands using docutils, allowing to use the docutils Python 3 module.

2to3-3.7 -w doc/hgmanpage.py: Since Python 3 is used with docutils, one file needs to be converted in order to be compatible.

## Configuring Mercurial

### Config Files

`/etc/mercurial/hgrc` and `~/.hgrc`

The great majority of extensions are disabled by default. Run hg help extensions if you need to enable any, e.g. when investigating test failures. You will obtain the lists of enabled and disabled extensions, and more information, such as how to enable or disable them using configuration files.

If you have installed make-ca-1.2 and want Mercurial to use them, as the `root` user, issue:

    install -v -d -m755 /etc/mercurial &&
    cat > /etc/mercurial/hgrc << "EOF"
    [web]
    cacerts = /etc/pki/tls/certs/ca-bundle.crt
    EOF

## Contents

Installed Programs: hg
Installed Libraries: several internal modules under /usr/lib/python2.7/site-packages/mercurial
Installed Directories: /etc/mercurial and /usr/lib/python2.7/site-packages/{hgdemandimport,hgext,hgext3rd,mercurial}

### Short Descriptions

hg | is the program file for mercurial.

Last updated on 2019-02-18 12:44:04 -0600

- Prev

  Lua-5.3.5

- Next

  NASM-2.14.02

- Up
- Home