source: general/prog/mercurial.xml@ 282a0eb

12.0 12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since 282a0eb was 282a0eb, checked in by Bruce Dubbs <bdubbs@…>, 10 months ago

Tag most of Chapter 13

  • Property mode set to 100644
File size: 11.0 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 "fccff6981f362466b8e9e0fa0de0ddb6">
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 30 SBU for tests; both using parallelism=4)">
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 &lfs120_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 -->
145 In order to
146 investigate any apparently failing tests, you may use the
147 <command>run-tests.py</command> script. To see the almost forty switches,
148 some of them very useful, issue <command>tests/run-tests.py
149 --help</command>. Running the following commands, you will execute only
150 the tests that failed before:
151 </para>
152
153<screen remap="test"><userinput>pushd tests &amp;&amp;
154 rm -rf tmp &amp;&amp;
155 ./run-tests.py --tmpdir tmp test-gpg.t
156popd</userinput></screen>
157
158 <para>
159 Normally, the previous failures will be reproducible. However, if
160 you add the switch <option>--debug</option> before
161 <option>--tmpdir</option>, and run the tests again, some failures may
162 disappear, which is a problem with the test suite. If this happens,
163 there will be no more of these failures even if you do not pass the
164 --debug switch again.
165 </para>
166
167 <para>
168 An interesting switch is <option>--time</option>, which will generate a
169 table of all the executed tests and their respective start, end, user,
170 system and real times once the tests are complete. Note that these
171 switches may be used with <command>make check</command> by including
172 them in the <envar>TESTFLAGS</envar> environment variable.
173 </para>
174
175 <para>
176 Install <application>Mercurial</application> by running the following
177 command (as <systemitem class="username">root</systemitem>):
178 </para>
179
180<screen role="root"><userinput>make PREFIX=/usr install-bin</userinput></screen>
181
182 <para>
183 If you built the documentation, install it by running the following
184 command (as <systemitem class="username">root</systemitem>):
185 </para>
186
187<screen role="root"
188 remap="doc"><userinput>make PREFIX=/usr install-doc</userinput></screen>
189
190 <para>
191 After installation, two very quick and simple tests should run
192 correctly. The first one needs some configuration:
193 </para>
194
195<screen><userinput>cat &gt;&gt; ~/.hgrc &lt;&lt; "EOF"
196<literal>[ui]
197username = <replaceable>&lt;user_name&gt; &lt;user@mail&gt;</replaceable></literal>
198EOF</userinput></screen>
199
200 <para>
201 where you must replace &lt;user_name&gt; and &lt;your@mail&gt; (mail
202 is optional and can be omitted). With the user identity defined, run
203 <command>hg debuginstall</command> and several lines will be displayed,
204 the last one reading "no problems detected". Another quick and simple
205 test is just <command>hg</command>, which should output basic commands
206 that can be used with <command>hg</command>.
207 </para>
208
209 </sect2>
210
211<!--
212 <sect2 role="commands">
213 <title>Command Explanations</title>
214
215 <para>
216 <command>2to3 -w doc/hgmanpage.py</command>: Since <application>
217 Python 3</application> is used with docutils, one file needs to be
218 converted in order to be compatible.
219 </para>
220
221 </sect2>
222-->
223
224 <sect2 role="configuration">
225 <title>Configuring Mercurial</title>
226
227 <sect3 id="mercurial-config">
228 <title>Config Files</title>
229
230 <para>
231 <filename>/etc/mercurial/hgrc</filename> and
232 <filename>~/.hgrc</filename>
233 </para>
234
235 <indexterm zone="mercurial mercurial-config">
236 <primary sortas="e-etc-mercurial-hgrc">/etc/mercurial/hgrc</primary>
237 </indexterm>
238
239 <indexterm zone="mercurial mercurial-config">
240 <primary sortas="e-AA.hgrc">~/.hgrc</primary>
241 </indexterm>
242
243 <para>
244 The great majority of extensions are disabled by default. Run
245 <command>hg help extensions</command> if you need to enable any, e.g.
246 when investigating test failures. This will output a list of enabled
247 and disabled extensions, as well as more information such as how to
248 enable or disable extensions using configuration files.
249 </para>
250
251 <para>
252 If you have installed <xref linkend="make-ca"/> and want
253 <application>Mercurial</application> to use the certificates,
254 as the <systemitem class="username">root</systemitem> user, issue:
255 </para>
256
257<screen role="root"><userinput>install -v -d -m755 /etc/mercurial &amp;&amp;
258cat &gt; /etc/mercurial/hgrc &lt;&lt; "EOF"
259<literal>[web]
260cacerts = /etc/pki/tls/certs/ca-bundle.crt</literal>
261EOF</userinput></screen>
262
263 </sect3>
264
265 </sect2>
266
267 <sect2 role="content">
268 <title>Contents</title>
269
270 <segmentedlist>
271 <segtitle>Installed Programs</segtitle>
272 <segtitle>Installed Libraries</segtitle>
273 <segtitle>Installed Directories</segtitle>
274
275 <seglistitem>
276 <seg>
277 hg
278 </seg>
279 <seg>
280 several internal modules under
281 /usr/lib/python&python3-majorver;/site-packages/mercurial
282 </seg>
283 <seg>
284 /etc/mercurial,
285 /usr/lib/python&python3-majorver;/site-packages/hgdemandimport,
286 /usr/lib/python&python3-majorver;/site-packages/hgext,
287 /usr/lib/python&python3-majorver;/site-packages/hgext3rd,
288 /usr/lib/python&python3-majorver;/site-packages/mercurial, and
289 /usr/lib/python&python3-majorver;/site-packages/mercurial-&mercurial-version;-py&python3-majorver;.egg-info
290 </seg>
291 </seglistitem>
292 </segmentedlist>
293
294 <variablelist>
295 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
296 <?dbfo list-presentation="list"?>
297 <?dbhtml list-presentation="table"?>
298
299 <varlistentry id="hg">
300 <term><command>hg</command></term>
301 <listitem>
302 <para>
303 is the mercurial version control system
304 </para>
305 <indexterm zone="mercurial hg">
306 <primary sortas="b-hg">hg</primary>
307 </indexterm>
308 </listitem>
309 </varlistentry>
310
311 </variablelist>
312
313 </sect2>
314
315</sect1>
Note: See TracBrowser for help on using the repository browser.