Mercurial est un outil de gestion de contrôle des sources distribuée similaire à Git et Bazaar. Mercurial est écrit en Python et il est utilisé par des projets tels que Mozilla pour Firefox et Thunderbird.
Les versions de développement de BLFS peuvent ne pas arriver à contruire ou à exécuter certains paquets correctement si LFS ou des dépendances ont été mises à jour depuis la dernière version stable des livres.
Téléchargement (HTTP) : https://www.mercurial-scm.org/release/mercurial-7.2.1.tar.gz
Somme de contrôle MD5 du téléchargement : 1b7fd8be6664ba24e47c29f31dc1ac26
Taille du téléchargement : 8,8 Mo
Estimation de l'espace disque requis : 127 Mo (avec la doc, plus 2,5 Go pour les tests)
Estimation du temps de construction : 0,3 SBU (avec la doc, plus 30 SBU pour les tests, les deux avec parallélisme = 4)
build-1.4.3, docutils-0.22.4 (requis pour construire la
documentation), git-2.53.0, OpenSSH-10.3p1
(exécution, pour accéder aux dépôts ssh://...), Pygments-2.20.0, rustc-1.94.0 (voir
rust/README.rst et rust/rhg/README.md), Subversion-1.14.5
(avec les liaisons Python), uv_build-0.10.2 (pour une méthode de
construction alternative), Which-2.23 (utilisé dans un test),
CVS,
pyflakes et re2
Mercurial est construit et
installé en une seule commande en tant qu'utilisateur root :
make PREFIX=/usr install
La documentation est construite par la commande ci-dessus (aux
formats man et html), mais seules les pages de manuel sont
installées. Si vous souhaitez installer la documentation html,
exécutez en tant qu'utilisateur root :
mkdir /usr/share/doc/mercurial-7.2.1 && cp -R doc/html /usr/share/doc/mercurial-7.2.1
Si vous souhaitez exécuter les tests, les sources rust doivent être corrigées pour la version la plus récente de rust :
pushd rust && cargo fix --workspace --allow-no-scm && popd
Il y a également un problème avec les permissions dans le
répertoire de construction, comme la commande install ci-dessus a créé des
fichiers qui appartiennent à root,
qu'un test essaye de modifier. Pour corriger cela, exécutez, en
tant qu'utilisateur root :
chown -Rv username .
OU username devrait être
remplacé par le nom d'utilisateur correspondant à la personne qui
exécute les tests. Pour lancer la suite de tests, exécutez :
TESTFLAGS="-j<N> --with-hg /usr/bin/hg" make check
où <N> est un
nombre entier entre un et le nombre de (processeurs × threads)
inclus (la valeur par défaut est le nombre total de processeurs
renvoyé par nproc).
Plusieurs tests peuvent échouer si certains messages d'erreur ont
changé dans Python, ou que certains avertissements d'obsolescence
sont affichés, qui n'étaient pas présents au moment où le test a
été conçu. De plus, certains tests utilisent beaucoup de mémoire,
et peuvent être tués par le noyau si le système n'a plus de
mémoire.
Afin de pouvoir investiguer un test qui a l'air d'échouer, vous
pouvez utiliser le script run-tests.py dans le répertoire
tests. Pour voir les presque quarante
options, dont certaines très utiles, lancez tests/run-tests.py --help. Avec
la commande suivante, vous exécuterez seulement les tests
précédemment échoués :
pushd tests && ./run-tests.py --with-hg /usr/bin/hg --retest popd
Une option intéressante est --time, qui
génère un tableau avec tous les tests exécutés et leur temps
respectifs de début, fin, utilisateur, système et réel à la fin de
l'exécution de la suite de tests. Remarquez que ces options peuvent
être utilisés avec make
check, en les ajoutant à la variable
d'environnement TESTFLAGS.
Après l'installation, vous devriez pouvoir correctement lancer deux tests très rapides et simples. Le premier demande un peu de configuration :
cat >> ~/.hgrc << "EOF"
[ui]
username = <user_name> <user@mail>
EOF
où vous devez remplacer <user_name> et <utilisateur@mail> (mail est facultatif et peut être omis, mais si vous le gardez, vous devriez également garder les chevrons « <> »). Une fois l'identité de l'utilisateur définie, lancez hg debuginstall et quelques lignes seront affichées, la dernière affichant « no problems detected ». Un autre test rapide et simple est juste hg, qui doit afficher les commandes basiques qui peuvent être utilisée avec hg.
/etc/mercurial/hgrc et ~/.hgrc
La grande majorité des extensions est désactivée par défaut. Lancez hg help extensions si vous souhaitez en activer une, par exemple lorsque vous investiguez des tests échoués. Vous obtiendrez la liste des extensions activées et désactivées, et plus d'information, comme comment les activer ou les désactiver avec les fichiers de configuration.
Si vous avez installé les make-ca-1.16.1 et que vous souhaitez que
Mercurial les utilise, lancez,
en tant qu'utilisateur root :
install -v -d -m755 /etc/mercurial &&
cat > /etc/mercurial/hgrc << "EOF"
[web]
cacerts = /etc/pki/tls/certs/ca-bundle.crt
EOF