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.
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.2.2.tar.gz
Nedlasting MD5 sum: 9a637d4fc411da358cfa341cd18d0a12
Nedlastingsstørrelse: 8.8 MB
Estimert diskplass som kreves: 124 MB (med dokumenter, legg til 2.5 GB for tester)
Estimert byggetid: 0.3 SBU (med dokumenter, legg til 24 SBU for tester; begge bruker parallellisme=4)
build-1.5.0, docutils-0.22.4 (nødvendig for å bygge
dokumentasjonen), git-2.54.0, OpenSSH-10.3p1
(kjøretid, for å få tilgang til ssh://... depoter), Pygments-2.20.0, rustc-1.95.0 (se rust/README.rst og rust/rhg/README.md), Subversion-1.14.5
(med Python bindinger), uv_build-0.10.2 (for en alternativ
byggemetode), Which-2.25 (brukt i en test),
CVS,
pyflakes, og re2
Fjern først noen kommandoer som er i konflikt med openssl4:
sed -i "15,23 s/^/#/" setup.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.2.2 && cp -R doc/html /usr/share/doc/mercurial-7.2.2
For å kjøre testene, sørg for at alle filene eies av en bruker uten
privilegier. Dette løser et problem med tillatelser i byggemappen
siden ovenstående install kommandoen har opprettet
filer eid av root. For å bøte på
dette, som root bruker utsted:
chown -Rv brukernavn .
Hvor brukernavn erstattes
med brukernavnet til brukernavnet til personen som kjører testene.
Testpakken prøver å kjøre noen tester som er inkompatible med rustc-1.95.0. Fjern den med:
sed -i "177,181 s/^/#/" Makefile
Now, run the test suite with:
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. Noen tester bruker også mye minne, og kan bli
drept av kjernen hvis systemet har lite minne.
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 && ./run-tests.py --with-hg /usr/bin/hg --retest 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> og <user@mail> (mail er valgfritt og kan utelates, men hvis du beholder det, bør du også beholde vinkelparentesene «<>»). 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