Mercurial-6.6.1

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 for Firefox and Thunderbird.

[注記]

注記

LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。

パッケージ情報

  • ダウンロード (HTTP): https://www.mercurial-scm.org/release/mercurial-6.6.1.tar.gz

  • ダウンロード MD5 sum: 29588536095ceb82602bd6656a86bd55

  • ダウンロードサイズ: 7.9 MB

  • 必要ディスク容量: 115 MB (with docs, add 1.5 GB for tests)

  • 概算ビルド時間: 0.5 SBU (with docs; add 18 SBU for tests; both using parallelism=8)

Mercurial の依存パッケージ

任意

docutils-0.20.1 (required to build the documentation), git-2.43.0, GPGME-1.23.2 (with Python bindings), OpenSSH-9.5p1 (runtime, to access ssh://... repositories), Pygments-2.17.2, rustc-1.74.1 (see rust/README.rst and rust/rhg/README.md), Subversion-1.14.2 (with Python bindings), Bazaar, CVS, pyflakes, pyOpenSSL, and re2

Mercurial のインストール

以下のコマンドを実行して Mercurial をビルドします。

make build

ドキュメントをビルドする場合 (docutils-0.20.1 が必要)、以下を実行します。

make doc

If you wish to run the tests, the rust tests must be removed as they are currently broken due to syntax errors. To do this, issue:

sed -i '138,142d' Makefile

To run the test suite, issue:

TESTFLAGS="-j<N> --tmpdir tmp" make check

where <N> is an integer between one and the number of ( processor X threads ), inclusive. Several tests 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

ドキュメントをビルドした場合 (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.

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. 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.13 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

パッケージ構成

インストールプログラム: hg
インストールライブラリ: /usr/lib/python3.12/site-packages/mercurial 配下にある内部モジュールが数種類。
インストールディレクトリ: /etc/mercurial, /usr/lib/python3.12/site-packages/hgdemandimport, /usr/lib/python3.12/site-packages/hgext, /usr/lib/python3.12/site-packages/hgext3rd, /usr/lib/python3.12/site-packages/mercurial, /usr/lib/python3.12/site-packages/mercurial-6.6.1-py3.12.egg-info

概略説明

hg

is the mercurial version control system