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 for Firefox and Thunderbird.
This package is known to build and work properly using an LFS 11.3 platform.
Download (HTTP): https://www.mercurial-scm.org/release/mercurial-6.3.2.tar.gz
Download MD5 sum: 37f5c2c5efee02fe25a0f344b2e3ca72
Download size: 7.7 MB
Estimated disk space required: 79 MB (with docs, add 892 MB for tests)
Estimated build time: 0.3 SBU (with docs, add 6.2 SBU for tests using -j4)
docutils-0.19
(required to build the documentation),
git-2.39.2,
GPGME-1.18.0 (with Python bindings),
OpenSSH-9.2p1
(runtime, to access ssh://... repositories),
Pygments-2.14.0,
rustc-1.67.1 (see rust/README.rst
and rust/rhg/README.md
),
Subversion-1.14.2 (with Python bindings),
Bazaar,
CVS,
pyflakes,
pyOpenSSL, and
re2
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/mercurial
Build Mercurial by issuing the following command:
make build
To build the documentation (requires docutils-0.19), issue:
make doc
To run the test suite, issue:
TESTFLAGS="-j<N>
--tmpdir tmp --blacklist blacklists/fsmonitor --blacklist blacklists/linux-vfat" make check
where <N>
is an integer between one
and the number of ( processor X threads ), inclusive. Several tests
(about 20) fail because some error messages have changed in Python, or
some deprecation warnings are printed, that were not present when the
test was designed.
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 reproducible. However, if
you add the switch --debug
before
--tmpdir
, and run the tests again, some failures may
disappear, which is a problem with the test suite. If this happens,
there will be no more of these failures even if you do not pass the
--debug switch again.
An interesting switch is --time
, which will generate a
table of all the executed tests and their respective start, end, user,
system and real times once the tests are complete. Note that these
switches may be used with make check by 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 installation, two very quick and simple tests should run correctly. The 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.
/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. This will output a list of enabled and disabled extensions, as well as more information such as how to enable or disable extensions using configuration files.
If you have installed make-ca-1.12 and want
Mercurial to use the certificates,
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