source: general/prog/mercurial.xml@ ef36e6dc

12.2 lazarus trunk xry111/for-12.3
Last change on this file since ef36e6dc was dcfee652, checked in by Douglas R. Reno <renodr@…>, 7 weeks ago

Update to mercurial-6.8.1

  • Property mode set to 100644
File size: 11.6 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 "f0c076d22c07bf65ffb02753fc516084">
10 <!ENTITY mercurial-size "7.9 MB">
11 <!ENTITY mercurial-buildsize "113 MB (with docs, add 1.5 GB for tests)">
12 <!ENTITY mercurial-time "0.3 SBU (with docs; add 16 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 </para>
91
92 </sect2>
93
94 <sect2 role="installation">
95 <title>Installation of Mercurial</title>
96 <!-- Rust port is now part of the standard tests -->
97
98 <para>
99 Build <application>Mercurial</application> by issuing the following
100 command:
101 </para>
102
103<screen><userinput>make build</userinput></screen>
104
105 <para>
106 To build the documentation (requires <xref linkend="docutils"/>), issue:
107 </para>
108
109<screen remap="doc"><userinput>make doc</userinput></screen>
110<!--
111 The tests do not hang. Better to just report what failed.
112
113 [renodr]: The tests do crash due to syntax errors and crash before they get
114 to the Python portion (which is where most of Mercurial is)
115-->
116
117 <para>
118 If you wish to run the tests, the rust tests must be removed as they are
119 currently broken due to syntax errors. To do this, issue:
120 </para>
121
122<screen><userinput>sed -i '138,142d' Makefile</userinput></screen>
123
124 <para>
125 To run the test suite, issue:
126 </para>
127<screen remap="test"><userinput>TESTFLAGS="-j<replaceable>&lt;N&gt;</replaceable> --tmpdir tmp" make check</userinput></screen>
128<!-- The blacklists have to be checked every release of Mercurial, do a listing
129 of tests/blacklists, but do not include the README.
130 For 6.4.1 removing the -blacklist entries did not affect the test results
131 although blacklists/fsmonitor and blacklists/linux-vfat still exist. -->
132
133 <para>
134 where <replaceable>&lt;N&gt;</replaceable> is an integer between one
135 and the number of ( processor X threads ), inclusive. Tests may
136 fail because some error messages have changed in Python or
137 some deprecation warnings are printed that were not present when the
138 test was designed. Two tests are known to fail: test-duplicateoptions.py
139 and test-profile.t.
140 </para>
141 <!--
142 # Ran 908 tests, 65 skipped, 4 failed. real 10m37.422s -bdubbs 6 Sep 22.
143 # Ran 881 tests,102 skipped, 23 failed. -plabs 17 Nov 22.
144 # Ran 919 tests, 64 skipped, 23 failed. real 10m25.285s -bdubbs 10 Jan 23.
145 # Ran 893 tests,101 skipped, 9 failed. real 29m03.014s -bdubbs 5 Mar 23.
146 # Ran 938 tests, 64 skipped, 8 failed. real 32m13.014s -bdubbs 17 Apr 23.
147 # Ran 935 tests, 69 skipped, 8 failed. real 26m15.875s -bdubbs 10 Jun 23.
148 # Ran 940 tests, 64 skipped, 8 failed. real omitted -bdubbs 26 Jun 23.
149 # Ran 948 tests, 66 skipped, 0 failed. -pierre 12 Jul 23 (mercurial-6.5).
150 # Ran 950 tests, 65 skipped, 1 failed. -pierre 8 Nov 23 (mercurial-6.5.3).
151 # Ran 948 tests, 66 skipped, 0 failed. -renodr 22 Nov 23 (mercurial-6.6).
152 # Ran 946 tests, 71 skipped, 2 failed. -bdubbs 20 Mar 24 (mercurial-6.7).
153 # Ran 966 tests, 58 skipped, 1 failed. -renodr 16 Mar 24 (mercurial-6.8).
154 -->
155 <para>
156 In order to
157 investigate any apparently failing tests, you may use the
158 <command>run-tests.py</command> script. To see the almost forty switches,
159 some of them very useful, issue <command>tests/run-tests.py
160 --help</command>. Running the following commands, you will execute only
161 the tests that failed before:
162 </para>
163
164<screen remap="test"><userinput>pushd tests &amp;&amp;
165 rm -rf tmp &amp;&amp;
166 ./run-tests.py --tmpdir tmp test-gpg.t
167popd</userinput></screen>
168
169 <para>
170 Normally, the previous failures will be reproducible. However, if
171 you add the switch <option>--debug</option> before
172 <option>--tmpdir</option>, and run the tests again, some failures may
173 disappear, which is a problem with the test suite. If this happens,
174 there will be no more of these failures even if you do not pass the
175 --debug switch again.
176 </para>
177
178 <para>
179 An interesting switch is <option>--time</option>, which will generate a
180 table of all the executed tests and their respective start, end, user,
181 system and real times once the tests are complete. Note that these
182 switches may be used with <command>make check</command> by including
183 them in the <envar>TESTFLAGS</envar> environment variable.
184 </para>
185
186 <para>
187 Install <application>Mercurial</application> by running the following
188 command (as <systemitem class="username">root</systemitem>):
189 </para>
190
191<screen role="root"><userinput>make PREFIX=/usr install-bin</userinput></screen>
192
193 <para>
194 If you built the documentation, install it by running the following
195 command (as <systemitem class="username">root</systemitem>):
196 </para>
197
198<screen role="root"
199 remap="doc"><userinput>make PREFIX=/usr install-doc</userinput></screen>
200
201 <para>
202 After installation, two very quick and simple tests should run
203 correctly. The first one needs some configuration:
204 </para>
205
206<screen><userinput>cat &gt;&gt; ~/.hgrc &lt;&lt; "EOF"
207<literal>[ui]
208username = <replaceable>&lt;user_name&gt; &lt;user@mail&gt;</replaceable></literal>
209EOF</userinput></screen>
210
211 <para>
212 where you must replace &lt;user_name&gt; and &lt;your@mail&gt; (mail
213 is optional and can be omitted). With the user identity defined, run
214 <command>hg debuginstall</command> and several lines will be displayed,
215 the last one reading "no problems detected". Another quick and simple
216 test is just <command>hg</command>, which should output basic commands
217 that can be used with <command>hg</command>.
218 </para>
219
220 </sect2>
221
222<!--
223 <sect2 role="commands">
224 <title>Command Explanations</title>
225
226 <para>
227 <command>2to3 -w doc/hgmanpage.py</command>: Since <application>
228 Python 3</application> is used with docutils, one file needs to be
229 converted in order to be compatible.
230 </para>
231
232 </sect2>
233-->
234
235 <sect2 role="configuration">
236 <title>Configuring Mercurial</title>
237
238 <sect3 id="mercurial-config">
239 <title>Config Files</title>
240
241 <para>
242 <filename>/etc/mercurial/hgrc</filename> and
243 <filename>~/.hgrc</filename>
244 </para>
245
246 <indexterm zone="mercurial mercurial-config">
247 <primary sortas="e-etc-mercurial-hgrc">/etc/mercurial/hgrc</primary>
248 </indexterm>
249
250 <indexterm zone="mercurial mercurial-config">
251 <primary sortas="e-AA.hgrc">~/.hgrc</primary>
252 </indexterm>
253
254 <para>
255 The great majority of extensions are disabled by default. Run
256 <command>hg help extensions</command> if you need to enable any, e.g.
257 when investigating test failures. This will output a list of enabled
258 and disabled extensions, as well as more information such as how to
259 enable or disable extensions using configuration files.
260 </para>
261
262 <para>
263 If you have installed <xref linkend="make-ca"/> and want
264 <application>Mercurial</application> to use the certificates,
265 as the <systemitem class="username">root</systemitem> user, issue:
266 </para>
267
268<screen role="root"><userinput>install -v -d -m755 /etc/mercurial &amp;&amp;
269cat &gt; /etc/mercurial/hgrc &lt;&lt; "EOF"
270<literal>[web]
271cacerts = /etc/pki/tls/certs/ca-bundle.crt</literal>
272EOF</userinput></screen>
273
274 </sect3>
275
276 </sect2>
277
278 <sect2 role="content">
279 <title>Contents</title>
280
281 <segmentedlist>
282 <segtitle>Installed Programs</segtitle>
283 <segtitle>Installed Libraries</segtitle>
284 <segtitle>Installed Directories</segtitle>
285
286 <seglistitem>
287 <seg>
288 hg
289 </seg>
290 <seg>
291 several internal modules under
292 /usr/lib/python&python3-majorver;/site-packages/mercurial
293 </seg>
294 <seg>
295 /etc/mercurial,
296 /usr/lib/python&python3-majorver;/site-packages/hgdemandimport,
297 /usr/lib/python&python3-majorver;/site-packages/hgext,
298 /usr/lib/python&python3-majorver;/site-packages/hgext3rd,
299 /usr/lib/python&python3-majorver;/site-packages/mercurial, and
300 /usr/lib/python&python3-majorver;/site-packages/mercurial-&mercurial-version;-py&python3-majorver;.egg-info
301 </seg>
302 </seglistitem>
303 </segmentedlist>
304
305 <variablelist>
306 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
307 <?dbfo list-presentation="list"?>
308 <?dbhtml list-presentation="table"?>
309
310 <varlistentry id="hg">
311 <term><command>hg</command></term>
312 <listitem>
313 <para>
314 is the mercurial version control system
315 </para>
316 <indexterm zone="mercurial hg">
317 <primary sortas="b-hg">hg</primary>
318 </indexterm>
319 </listitem>
320 </varlistentry>
321
322 </variablelist>
323
324 </sect2>
325
326</sect1>
Note: See TracBrowser for help on using the repository browser.