source: general/prog/mercurial.xml@ 3e923e5

ken/TL2024 lazarus trunk
Last change on this file since 3e923e5 was f722f5b, checked in by Bruce Dubbs <bdubbs@…>, 3 months ago

Tag the rest of Chapter 13 minus openjdk plus apache

  • Property mode set to 100644
File size: 11.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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 "b6c1716150b0da35d44d1155cb3ae853">
10 <!ENTITY mercurial-size "7.9 MB">
11 <!ENTITY mercurial-buildsize "115 MB (with docs, add 1.5 GB for tests)">
12 <!ENTITY mercurial-time "0.3 SBU (with docs; add 14 SBU for tests; both using parallelism=8)">
13]>
14
15<sect1 id="mercurial" xreflabel="Mercurial-&mercurial-version;">
16 <?dbhtml filename="mercurial.html"?>
17
18
19 <title>Mercurial-&mercurial-version;</title>
20
21 <indexterm zone="mercurial">
22 <primary sortas="a-mercurial">mercurial</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Mercurial</title>
27
28 <para>
29 <application>Mercurial</application> is a distributed source control
30 management tool similar to <application>Git</application> and
31 <application>Bazaar</application>. <application>Mercurial</application>
32 is written in <application>Python</application> and is used by projects
33 such as Mozilla for Firefox and Thunderbird.
34 </para>
35
36 &lfs121_checked;
37
38 <bridgehead renderas="sect3">Package Information</bridgehead>
39 <itemizedlist spacing="compact">
40 <listitem>
41 <para>
42 Download (HTTP): <ulink url="&mercurial-download-http;"/>
43 </para>
44 </listitem>
45 <listitem>
46 <para>
47 Download (FTP): <ulink url="&mercurial-download-ftp;"/>
48 </para>
49 </listitem>
50 <listitem>
51 <para>
52 Download MD5 sum: &mercurial-md5sum;
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download size: &mercurial-size;
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Estimated disk space required: &mercurial-buildsize;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Estimated build time: &mercurial-time;
68 </para>
69 </listitem>
70 </itemizedlist>
71
72 <bridgehead renderas="sect3">Mercurial Dependencies</bridgehead>
73
74 <bridgehead renderas="sect4">Optional</bridgehead>
75 <para role="optional">
76 <xref linkend="docutils"/>
77 (required to build the documentation),
78 <xref linkend="git"/>,
79 <xref linkend="gpgme"/> (with Python bindings),
80 <xref role="runtime" linkend="openssh"/>
81 (runtime, to access ssh://... repositories),
82 <xref linkend="pygments"/>,
83 <xref linkend="rust"/> (see <filename>rust/README.rst</filename> and <filename>rust/rhg/README.md</filename>),
84 <xref linkend="subversion"/> (with Python bindings),
85 <ulink url="https://launchpad.net/bzr">Bazaar</ulink>,
86 <ulink url="https://www.nongnu.org/cvs/">CVS</ulink>,
87 <ulink url="https://pypi.python.org/pypi/pyflakes">pyflakes</ulink>,
88 <ulink url="https://www.pyopenssl.org/en/stable/">pyOpenSSL</ulink>, and
89 <ulink url="https://github.com/google/re2/">re2</ulink>
90
91 </para>
92
93
94 </sect2>
95
96 <sect2 role="installation">
97 <title>Installation of Mercurial</title>
98 <!-- Rust port is now part of the standard tests -->
99
100 <para>
101 Build <application>Mercurial</application> by issuing the following
102 command:
103 </para>
104
105<screen><userinput>make build</userinput></screen>
106
107 <para>
108 To build the documentation (requires <xref linkend="docutils"/>), issue:
109 </para>
110
111<screen remap="doc"><userinput>make doc</userinput></screen>
112
113 <para>
114 If you wish to run the tests, the rust tests must be removed as they are
115 currently broken due to syntax errors. To do this, issue:
116 </para>
117
118<screen><userinput>sed -i '138,142d' Makefile</userinput></screen>
119
120 <para>
121 To run the test suite, issue:
122 </para>
123<screen remap="test"><userinput>TESTFLAGS="-j<replaceable>&lt;N&gt;</replaceable> --tmpdir tmp" 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 README.
126 For 6.4.1 removing the -blacklist entries did not affect the test results
127 although blacklists/fsmonitor and blacklists/linux-vfat still exist. -->
128
129 <para>
130 where <replaceable>&lt;N&gt;</replaceable> is an integer between one
131 and the number of ( processor X threads ), inclusive. Several tests
132 fail because some error messages have changed in Python or
133 some deprecation warnings are printed that were not present when the
134 test was designed.
135 <!--
136 # Ran 908 tests, 65 skipped, 4 failed. real 10m37.422s -bdubbs 6 Sep 22.
137 # Ran 881 tests,102 skipped, 23 failed. -plabs 17 Nov 22.
138 # Ran 919 tests, 64 skipped, 23 failed. real 10m25.285s -bdubbs 10 Jan 23.
139 # Ran 893 tests,101 skipped, 9 failed. real 29m03.014s -bdubbs 5 Mar 23.
140 # Ran 938 tests, 64 skipped, 8 failed. real 32m13.014s -bdubbs 17 Apr 23.
141 # Ran 935 tests, 69 skipped, 8 failed. real 26m15.875s -bdubbs 10 Jun 23.
142 # Ran 940 tests, 64 skipped, 8 failed. real omitted -bdubbs 26 Jun 23.
143 # Ran 948 tests, 66 skipped, 0 failed. -pierre 12 Jul 23 (mercurial-6.5).
144 # Ran 950 tests, 65 skipped, 1 failed. -pierre 8 Nov 23 (mercurial-6.5.3).
145 # Ran 948 tests, 66 skipped, 0 failed. -renodr 22 Nov 23 (mercurial-6.6).
146 -->
147 In order to
148 investigate any apparently failing tests, you may use the
149 <command>run-tests.py</command> script. To see the almost forty switches,
150 some of them very useful, issue <command>tests/run-tests.py
151 --help</command>. Running the following commands, you will execute only
152 the tests that failed before:
153 </para>
154
155<screen remap="test"><userinput>pushd tests &amp;&amp;
156 rm -rf tmp &amp;&amp;
157 ./run-tests.py --tmpdir tmp test-gpg.t
158popd</userinput></screen>
159
160 <para>
161 Normally, the previous failures will be reproducible. However, if
162 you add the switch <option>--debug</option> before
163 <option>--tmpdir</option>, and run the tests again, some failures may
164 disappear, which is a problem with the test suite. If this happens,
165 there will be no more of these failures even if you do not pass the
166 --debug switch again.
167 </para>
168
169 <para>
170 An interesting switch is <option>--time</option>, which will generate a
171 table of all the executed tests and their respective start, end, user,
172 system and real times once the tests are complete. Note that these
173 switches may be used with <command>make check</command> by including
174 them in the <envar>TESTFLAGS</envar> environment variable.
175 </para>
176
177 <para>
178 Install <application>Mercurial</application> by running the following
179 command (as <systemitem class="username">root</systemitem>):
180 </para>
181
182<screen role="root"><userinput>make PREFIX=/usr install-bin</userinput></screen>
183
184 <para>
185 If you built the documentation, install it by running the following
186 command (as <systemitem class="username">root</systemitem>):
187 </para>
188
189<screen role="root"
190 remap="doc"><userinput>make PREFIX=/usr install-doc</userinput></screen>
191
192 <para>
193 After installation, two very quick and simple tests should run
194 correctly. The first one needs some configuration:
195 </para>
196
197<screen><userinput>cat &gt;&gt; ~/.hgrc &lt;&lt; "EOF"
198<literal>[ui]
199username = <replaceable>&lt;user_name&gt; &lt;user@mail&gt;</replaceable></literal>
200EOF</userinput></screen>
201
202 <para>
203 where you must replace &lt;user_name&gt; and &lt;your@mail&gt; (mail
204 is optional and can be omitted). With the user identity defined, run
205 <command>hg debuginstall</command> and several lines will be displayed,
206 the last one reading "no problems detected". Another quick and simple
207 test is just <command>hg</command>, which should output basic commands
208 that can be used with <command>hg</command>.
209 </para>
210
211 </sect2>
212
213<!--
214 <sect2 role="commands">
215 <title>Command Explanations</title>
216
217 <para>
218 <command>2to3 -w doc/hgmanpage.py</command>: Since <application>
219 Python 3</application> is used with docutils, one file needs to be
220 converted in order to be compatible.
221 </para>
222
223 </sect2>
224-->
225
226 <sect2 role="configuration">
227 <title>Configuring Mercurial</title>
228
229 <sect3 id="mercurial-config">
230 <title>Config Files</title>
231
232 <para>
233 <filename>/etc/mercurial/hgrc</filename> and
234 <filename>~/.hgrc</filename>
235 </para>
236
237 <indexterm zone="mercurial mercurial-config">
238 <primary sortas="e-etc-mercurial-hgrc">/etc/mercurial/hgrc</primary>
239 </indexterm>
240
241 <indexterm zone="mercurial mercurial-config">
242 <primary sortas="e-AA.hgrc">~/.hgrc</primary>
243 </indexterm>
244
245 <para>
246 The great majority of extensions are disabled by default. Run
247 <command>hg help extensions</command> if you need to enable any, e.g.
248 when investigating test failures. This will output a list of enabled
249 and disabled extensions, as well as more information such as how to
250 enable or disable extensions using configuration files.
251 </para>
252
253 <para>
254 If you have installed <xref linkend="make-ca"/> and want
255 <application>Mercurial</application> to use the certificates,
256 as the <systemitem class="username">root</systemitem> user, issue:
257 </para>
258
259<screen role="root"><userinput>install -v -d -m755 /etc/mercurial &amp;&amp;
260cat &gt; /etc/mercurial/hgrc &lt;&lt; "EOF"
261<literal>[web]
262cacerts = /etc/pki/tls/certs/ca-bundle.crt</literal>
263EOF</userinput></screen>
264
265 </sect3>
266
267 </sect2>
268
269 <sect2 role="content">
270 <title>Contents</title>
271
272 <segmentedlist>
273 <segtitle>Installed Programs</segtitle>
274 <segtitle>Installed Libraries</segtitle>
275 <segtitle>Installed Directories</segtitle>
276
277 <seglistitem>
278 <seg>
279 hg
280 </seg>
281 <seg>
282 several internal modules under
283 /usr/lib/python&python3-majorver;/site-packages/mercurial
284 </seg>
285 <seg>
286 /etc/mercurial,
287 /usr/lib/python&python3-majorver;/site-packages/hgdemandimport,
288 /usr/lib/python&python3-majorver;/site-packages/hgext,
289 /usr/lib/python&python3-majorver;/site-packages/hgext3rd,
290 /usr/lib/python&python3-majorver;/site-packages/mercurial, and
291 /usr/lib/python&python3-majorver;/site-packages/mercurial-&mercurial-version;-py&python3-majorver;.egg-info
292 </seg>
293 </seglistitem>
294 </segmentedlist>
295
296 <variablelist>
297 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
298 <?dbfo list-presentation="list"?>
299 <?dbhtml list-presentation="table"?>
300
301 <varlistentry id="hg">
302 <term><command>hg</command></term>
303 <listitem>
304 <para>
305 is the mercurial version control system
306 </para>
307 <indexterm zone="mercurial hg">
308 <primary sortas="b-hg">hg</primary>
309 </indexterm>
310 </listitem>
311 </varlistentry>
312
313 </variablelist>
314
315 </sect2>
316
317</sect1>
Note: See TracBrowser for help on using the repository browser.