source: general/prog/mercurial.xml@ 3591ad9

10.0 10.1 11.0 11.1 9.0 9.1 lazarus qt5new trunk upgradedb xry111/intltool xry111/test-20220226
Last change on this file since 3591ad9 was 3591ad9, checked in by Bruce Dubbs <bdubbs@…>, 3 years ago

Update to mercurial-5.1.
Update to libevent-2.1.11.
Update to Mako-1.1.0.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@21895 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 10.2 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY mercurial-download-http "https://www.mercurial-scm.org/release/mercurial-&mercurial-version;.tar.gz">
8 <!ENTITY mercurial-download-ftp " ">
9 <!ENTITY mercurial-md5sum "7b1902492cee88acfc3b62caae70f636">
10 <!ENTITY mercurial-size "6.9 MB">
11 <!ENTITY mercurial-buildsize "74 MB (with docs, add 571 MB for tests)">
12 <!ENTITY mercurial-time "0.5 SBU (with docs, add 10 SBU for tests using -j4)">
13]>
14
15<sect1 id="mercurial" xreflabel="Mercurial-&mercurial-version;">
16 <?dbhtml filename="mercurial.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>Mercurial-&mercurial-version;</title>
24
25 <indexterm zone="mercurial">
26 <primary sortas="a-mercurial">mercurial</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to Mercurial</title>
31
32 <para><application>Mercurial</application> is a distributed source control
33 management tool similar to <application>Git</application> and
34 <application>Bazaar</application>. <application>Mercurial</application> is
35 written in <application>Python</application> and is used by projects such as
36 Mozilla and Vim.</para>
37
38 &lfs84_checked;
39
40 <bridgehead renderas="sect3">Package Information</bridgehead>
41 <itemizedlist spacing="compact">
42 <listitem>
43 <para>Download (HTTP): <ulink url="&mercurial-download-http;"/></para>
44 </listitem>
45 <listitem>
46 <para>Download (FTP): <ulink url="&mercurial-download-ftp;"/></para>
47 </listitem>
48 <listitem>
49 <para>Download MD5 sum: &mercurial-md5sum;</para>
50 </listitem>
51 <listitem>
52 <para>Download size: &mercurial-size;</para>
53 </listitem>
54 <listitem>
55 <para>Estimated disk space required: &mercurial-buildsize;</para>
56 </listitem>
57 <listitem>
58 <para>Estimated build time: &mercurial-time;</para>
59 </listitem>
60 </itemizedlist>
61
62 <bridgehead renderas="sect3">Mercurial Dependencies</bridgehead>
63
64 <bridgehead renderas="sect4">Required</bridgehead>
65 <para role="required">
66 <xref linkend="python2"/>
67 </para>
68
69 <bridgehead renderas="sect4">Optional</bridgehead>
70 <para role="optional">
71 <xref linkend="docutils"/>
72 (required to build the documentation),
73 <xref linkend="git"/>,
74 <xref linkend="gnupg2"/> (<command>gpg2</command> with Python bindings),
75 <xref role="runtime" linkend="openssh"/>
76 (runtime, to access ssh://... repositories),
77 <xref linkend="pygments"/>,
78 <xref linkend="subversion"/> (with Python bindings),
79 <ulink url="https://launchpad.net/bzr">Bazaar</ulink>,
80 <ulink url="http://www.nongnu.org/cvs/">CVS</ulink>,
81 <ulink url="https://pypi.python.org/pypi/pyflakes">pyflakes</ulink>, and
82 <ulink url="https://github.com/pyca/pyopenssl">pyOpenSSL</ulink>
83
84 </para>
85
86 <para condition="html" role="usernotes">User Notes:
87 <ulink url="&blfs-wiki;/mercurial"/></para>
88
89 </sect2>
90
91 <sect2 role="installation">
92 <title>Installation of Mercurial</title>
93 <!-- seems to have a development rust port -->
94
95 <para>Build <application>Mercurial</application> by issuing the following
96 command:</para>
97
98<screen><userinput>make build</userinput></screen>
99
100 <para>To build the documentation (requires <xref linkend="docutils"/>),
101 issue:</para>
102
103<screen remap="doc"><userinput>sed -i '/runrst/s/N)/N)3/' doc/Makefile &amp;&amp;
1042to3-3.7 -w doc/hgmanpage.py &amp;&amp;
105make doc</userinput></screen>
106
107<!-- All tests pass (or are skipped) at version 3.8.2
108 <para>Running the test suite is optional. Tests which fail may be disabled,
109 adding each one to <filename>tests/blacklists/failed-tests</filename>. In
110 order to execute the test suite using the temporary directory <filename
111 class="directory">tests/tmp</filename> and skipping the failing tests,
112 issue:</para>
113
114<screen remap="test"><userinput>cat &gt; tests/blacklists/failed-tests &lt;&lt; "EOF"
115<literal># Test Failures
116 test-gpg.t</literal>
117EOF
118-->
119 <para>
120 To run the test suite, issue:
121 </para>
122<screen remap="test"><userinput>rm -rf tests/tmp &amp;&amp;
123TESTFLAGS="-j<replaceable>&lt;N&gt;</replaceable> --tmpdir tmp --blacklist blacklists/fsmonitor --blacklist blacklists/linux-vfat" make check</userinput></screen>
124<!-- The blacklists have to be checked every release of Mercurial, do a listing
125 of tests/blacklists, but do not include the makefile. -->
126
127 <para>where <replaceable>&lt;N&gt;</replaceable> is an integer between one
128 and the number of ( processor X threads ), inclusive. In order to
129 investigate any apparently failing tests, you may use the
130 <command>run-tests.py</command> script. To see the almost forty switches,
131 some of them very useful, issue <command>tests/run-tests.py
132 --help</command>. Running the following commands, you will execute only
133 the tests that failed before:</para>
134
135<screen remap="test"><userinput>pushd tests &amp;&amp;
136 rm -rf tmp &amp;&amp;
137 ./run-tests.py --tmpdir tmp test-gpg.t
138popd</userinput></screen>
139
140 <para>Normally, the previous failures will be confirmed. However, if
141 you add the switch
142 "--debug" before "--tmpdir", and run again, some failures are gone, which
143 seems to be a problem with the test suite. If this happens, normally, from
144 now on, there will be no more such failures whether you use the debug switch
145 or not. Three tests, test-alias.t, test-install.t, and
146 test-bundle2-exchange.t (intermittently), are known to fail.</para>
147
148 <para>An interesting switch is "--time", which will generate at the end of
149 the test suite execution, a table with all executed tests and respective
150 start, end, user, system and real times. Note that the switches may be
151 used with <command>make check</command> by including them in the
152 <envar>TESTFLAGS</envar> environment variable.</para>
153
154 <para>Install <application>Mercurial</application> by running the following
155 command (as <systemitem class="username">root</systemitem>):</para>
156
157<screen role="root"><userinput>make PREFIX=/usr install-bin</userinput></screen>
158
159 <para>If you built the documentation, install it by running the following
160 command (as <systemitem class="username">root</systemitem>):</para>
161
162<screen role="root"
163 remap="doc"><userinput>make PREFIX=/usr install-doc</userinput></screen>
164
165 <para>After installation, two very quick and simple tests should run
166 correctly. The first one needs some configuration:</para>
167
168<screen><userinput>cat &gt;&gt; ~/.hgrc &lt;&lt; "EOF"
169<literal>[ui]
170username = <replaceable>&lt;user_name&gt; &lt;user@mail&gt;</replaceable></literal>
171EOF</userinput></screen>
172
173 <para>where you must replace &lt;user_name&gt; and &lt;your@mail&gt; (mail
174 is optional and can be omitted). With the user identity defined, run
175 <command>hg debuginstall</command> and several lines will be displayed,
176 the last one reading "no problems detected". Another quick and simple test
177 is just <command>hg</command>, which should output basic commands that can
178 be used with <command>hg</command>.</para>
179
180 </sect2>
181
182 <sect2 role="commands">
183 <title>Command Explanations</title>
184
185 <para>
186 <command>sed -i '/runrst/s/N)/N)3/' doc/Makefile</command>: forces the
187 use of <application>Python 3</application> for commands using docutils,
188 allowing to use the docutils <application>Python 3</application> module.
189 </para>
190
191 <para>
192 <command>2to3-3.7 -w doc/hgmanpage.py</command>: Since <application>
193 Python 3</application> is used with docutils, one file needs to be
194 converted in order to be compatible.
195 </para>
196
197 </sect2>
198 <sect2 role="configuration">
199 <title>Configuring Mercurial</title>
200
201 <sect3 id="mercurial-config">
202 <title>Config Files</title>
203
204 <para>
205 <filename>/etc/mercurial/hgrc</filename> and
206 <filename>~/.hgrc</filename>
207 </para>
208
209 <indexterm zone="mercurial mercurial-config">
210 <primary sortas="e-etc-mercurial-hgrc">/etc/mercurial/hgrc</primary>
211 </indexterm>
212
213 <indexterm zone="mercurial mercurial-config">
214 <primary sortas="e-AA.hgrc">~/.hgrc</primary>
215 </indexterm>
216
217 <para>The great majority of extensions are disabled by default. Run
218 <command>hg help extensions</command> if you need to enable any, e.g.
219 when investigating test failures. You will obtain the lists of enabled and
220 disabled extensions, and more information, such as how to enable or
221 disable them using configuration files.</para>
222
223 <para>If you have installed <xref linkend="make-ca"/> and want
224 <application>Mercurial</application> to use them, as the <systemitem
225 class="username">root</systemitem> user, issue:</para>
226
227<screen role="root"><userinput>install -v -d -m755 /etc/mercurial &amp;&amp;
228cat &gt; /etc/mercurial/hgrc &lt;&lt; "EOF"
229<literal>[web]
230cacerts = /etc/pki/tls/certs/ca-bundle.crt</literal>
231EOF</userinput></screen>
232
233 </sect3>
234
235 </sect2>
236
237 <sect2 role="content">
238 <title>Contents</title>
239
240 <segmentedlist>
241 <segtitle>Installed Programs</segtitle>
242 <segtitle>Installed Libraries</segtitle>
243 <segtitle>Installed Directories</segtitle>
244
245 <seglistitem>
246 <seg>
247 hg
248 </seg>
249 <seg>
250 several internal modules under
251 /usr/lib/python&python2-majorver;/site-packages/mercurial
252 </seg>
253 <seg>
254 /etc/mercurial and
255 /usr/lib/python&python2-majorver;/site-packages/{hgdemandimport,hgext,hgext3rd,mercurial}
256 </seg>
257 </seglistitem>
258 </segmentedlist>
259
260 <variablelist>
261 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
262 <?dbfo list-presentation="list"?>
263 <?dbhtml list-presentation="table"?>
264
265 <varlistentry id="hg">
266 <term><command>hg</command></term>
267 <listitem>
268 <para>is the mercurial version control system.</para>
269 <indexterm zone="mercurial hg">
270 <primary sortas="b-hg">hg</primary>
271 </indexterm>
272 </listitem>
273 </varlistentry>
274
275 </variablelist>
276
277 </sect2>
278
279</sect1>
Note: See TracBrowser for help on using the repository browser.