Mercurial er en distribuert kildekontroll styringsverktøy som ligner på Git og Bazaar. Mercurial er skrevet i Python og brukes av prosjekter som Mozilla for Firefox og Thunderbird.
![[Notat]](../images/note.png) 
          Utviklingsversjoner av BLFS kan kanskje ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden de siste stabile versjonene av bøkene.
Nedlasting (HTTP): https://www.mercurial-scm.org/release/mercurial-7.1.1.tar.gz
Nedlasting MD5 sum: 6cf868fd3d2e7c38105dacbd1bc8624f
Nedlastingsstørrelse: 8.6 MB
Estimert diskplass som kreves: 87 MB (med dokumenter, legg til 32 MB for tester)
Estimert byggetid: 0.3 SBU (med dokumenter, legg til 23 SBU for tester; begge bruker parallellisme=4)
          build-1.3.0, docutils-0.22.2 (nødvendig for å bygge
          dokumentasjonen), git-2.51.2, OpenSSH-10.2p1
          (kjøretid, for å få tilgang til ssh://... depoter), Pygments-2.19.2, rustc-1.90.0 (se rust/README.rst og rust/rhg/README.md), Subversion-1.14.5
          (med Python bindinger), CVS, pyflakes, og re2
        
Først jobb rundt et problem med docutils-0.22.2 og over:
sed -i '/try:/,+3s/^/#/' doc/hgmanpage.py
          Mercurial er bygget og installert
          i en enkelt kommando som root
          bruker:
        
make PREFIX=/usr install
          Dokumentasjonen er bygget av kommandoen ovenfor (i man- og
          html-formater), men bare man sidene er installert. Hvis du ønsker å
          installere html dokumentasjon, utsted som root bruker:
        
mkdir /usr/share/doc/mercurial-7.1.1 && cp -R doc/html /usr/share/doc/mercurial-7.1.1
Hvis du ønsker å kjøre testene, må rusttestene fjernes siden de for øyeblikket er ødelagt på grunn av syntaksfeil. For å gjøre dette, utsted:
sed -i '151,154d' Makefile
For å kjøre testpakken, utsted:
TESTFLAGS="-j<N> --with-hg /usr/bin/hg" make check
        
          hvor <N> er et
          heltall mellom én og antall ( prosessor X tråder ), inkludert
          (standard er totalt antall prosessorer som returnert av
          nproc). Tester kan
          mislykkes fordi noen feilmeldinger har endret seg i Python eller
          noen avskrivningsadvarsler skrives ut som ikke var til stede da
          testen ble designet.
        
          For å undersøke eventuelle tilsynelatende mislykkede tester, kan du
          bruke run-tests.py
          skriptet i tests mappen. For å se
          nesten førti brytere, noen av dem veldig nyttige, kjør tests/run-tests.py --help. Når du
          kjører følgende kommandoer, vil du bare kjøre testene som mislyktes
          før:
        
pushd tests  &&
  rm -rf tmp &&
  ./run-tests.py --with-hg /usr/bin/hg test-import.t
popd
        
          En interessant bryter er --time, som
          vil generere en tabell over alle utførte tester og deres respektive
          start, slutt, bruker, system og sanntid når testene er fullført.
          Merk at disse brytere kan brukes med make check ved å inkludere dem i
          TESTFLAGS miljøvariabelen.
        
Etter installasjonen to veldig raske og enkle tester burde kjøres riktig. Den første trenger litt konfigurasjon:
cat >> ~/.hgrc << "EOF"
[ui]
username = <user_name> <user@mail>
EOF
        hvor du må erstatte <user_name> and <your@mail> (mail er valgfritt og kan utelates). Med brukeridentiteten definert, kjør hg debuginstall og flere linjer vil vises, den siste leser "no problems detected". En annen rask og enkel test er bare hg, som skal gi grunnleggende kommandoer som kan brukes med hg.
            /etc/mercurial/hgrc og ~/.hgrc
          
De aller fleste utvidelser er deaktivert som standard. Kjør hg help extensions hvis du trenger å aktivere noen, f.eks. når man undersøker testfeil. Dette vil sende ut en liste over aktiverte og deaktiverte utvidelser, samt mer informasjon som hvordan aktivere eller deaktivere utvidelser ved hjelp av konfigurasjonsfiler.
            Hvis du har installert make-ca-1.16.1 og ønsker Mercurial å bruke sertifikatene, som
            root bruker, kjør:
          
install -v -d -m755 /etc/mercurial &&
cat > /etc/mercurial/hgrc << "EOF"
[web]
cacerts = /etc/pki/tls/certs/ca-bundle.crt
EOF