source: general/prog/mercurial.xml@ 2ecc682

12.0 12.1 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 2ecc682 was 2ecc682, checked in by Douglas R. Reno <renodr@…>, 13 months ago

Update to mercurial-6.4

  • Property mode set to 100644
File size: 10.6 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 "15914adce2b3de0e4179184b2ab75541">
10 <!ENTITY mercurial-size "7.8 MB">
11 <!ENTITY mercurial-buildsize "114 MB (with docs, add 2.0 GB for tests)">
12 <!ENTITY mercurial-time "0.3 SBU (with docs, add 17 SBU for tests using -j4)">
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 &lfs113_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 <para condition="html" role="usernotes">User Notes:
94 <ulink url="&blfs-wiki;/mercurial"/></para>
95
96 </sect2>
97
98 <sect2 role="installation">
99 <title>Installation of Mercurial</title>
100 <!-- Rust port is now part of the standard tests -->
101
102 <para>
103 Build <application>Mercurial</application> by issuing the following
104 command:
105 </para>
106
107<screen><userinput>make build</userinput></screen>
108
109 <para>
110 To build the documentation (requires <xref linkend="docutils"/>), issue:
111 </para>
112
113<screen remap="doc"><userinput>make doc</userinput></screen>
114
115 <para>
116 If you wish to run the tests, the rust tests must be removed as they are
117 currently broken due to syntax errors. To do this, issue:
118 </para>
119
120<screen><userinput>sed -i '138,142d' Makefile</userinput></screen>
121
122 <para>
123 To run the test suite, issue:
124 </para>
125<screen remap="test"><userinput>TESTFLAGS="-j<replaceable>&lt;N&gt;</replaceable> --tmpdir tmp --blacklist blacklists/fsmonitor --blacklist blacklists/linux-vfat" make check</userinput></screen>
126<!-- The blacklists have to be checked every release of Mercurial, do a listing
127 of tests/blacklists, but do not include the README. -->
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 29m3.014ss -bdubbs 5 Mar 23.
140 -->
141 In order to
142 investigate any apparently failing tests, you may use the
143 <command>run-tests.py</command> script. To see the almost forty switches,
144 some of them very useful, issue <command>tests/run-tests.py
145 --help</command>. Running the following commands, you will execute only
146 the tests that failed before:
147 </para>
148
149<screen remap="test"><userinput>pushd tests &amp;&amp;
150 rm -rf tmp &amp;&amp;
151 ./run-tests.py --tmpdir tmp test-gpg.t
152popd</userinput></screen>
153
154 <para>
155 Normally, the previous failures will be reproducible. However, if
156 you add the switch <option>--debug</option> before
157 <option>--tmpdir</option>, and run the tests again, some failures may
158 disappear, which is a problem with the test suite. If this happens,
159 there will be no more of these failures even if you do not pass the
160 --debug switch again.
161 </para>
162
163 <para>
164 An interesting switch is <option>--time</option>, which will generate a
165 table of all the executed tests and their respective start, end, user,
166 system and real times once the tests are complete. Note that these
167 switches may be used with <command>make check</command> by including
168 them in the <envar>TESTFLAGS</envar> environment variable.
169 </para>
170
171 <para>
172 Install <application>Mercurial</application> by running the following
173 command (as <systemitem class="username">root</systemitem>):
174 </para>
175
176<screen role="root"><userinput>make PREFIX=/usr install-bin</userinput></screen>
177
178 <para>
179 If you built the documentation, install it by running the following
180 command (as <systemitem class="username">root</systemitem>):
181 </para>
182
183<screen role="root"
184 remap="doc"><userinput>make PREFIX=/usr install-doc</userinput></screen>
185
186 <para>
187 After installation, two very quick and simple tests should run
188 correctly. The first one needs some configuration:
189 </para>
190
191<screen><userinput>cat &gt;&gt; ~/.hgrc &lt;&lt; "EOF"
192<literal>[ui]
193username = <replaceable>&lt;user_name&gt; &lt;user@mail&gt;</replaceable></literal>
194EOF</userinput></screen>
195
196 <para>
197 where you must replace &lt;user_name&gt; and &lt;your@mail&gt; (mail
198 is optional and can be omitted). With the user identity defined, run
199 <command>hg debuginstall</command> and several lines will be displayed,
200 the last one reading "no problems detected". Another quick and simple
201 test is just <command>hg</command>, which should output basic commands
202 that can be used with <command>hg</command>.
203 </para>
204
205 </sect2>
206
207<!--
208 <sect2 role="commands">
209 <title>Command Explanations</title>
210
211 <para>
212 <command>2to3 -w doc/hgmanpage.py</command>: Since <application>
213 Python 3</application> is used with docutils, one file needs to be
214 converted in order to be compatible.
215 </para>
216
217 </sect2>
218-->
219
220 <sect2 role="configuration">
221 <title>Configuring Mercurial</title>
222
223 <sect3 id="mercurial-config">
224 <title>Config Files</title>
225
226 <para>
227 <filename>/etc/mercurial/hgrc</filename> and
228 <filename>~/.hgrc</filename>
229 </para>
230
231 <indexterm zone="mercurial mercurial-config">
232 <primary sortas="e-etc-mercurial-hgrc">/etc/mercurial/hgrc</primary>
233 </indexterm>
234
235 <indexterm zone="mercurial mercurial-config">
236 <primary sortas="e-AA.hgrc">~/.hgrc</primary>
237 </indexterm>
238
239 <para>
240 The great majority of extensions are disabled by default. Run
241 <command>hg help extensions</command> if you need to enable any, e.g.
242 when investigating test failures. This will output a list of enabled
243 and disabled extensions, as well as more information such as how to
244 enable or disable extensions using configuration files.
245 </para>
246
247 <para>
248 If you have installed <xref linkend="make-ca"/> and want
249 <application>Mercurial</application> to use the certificates,
250 as the <systemitem class="username">root</systemitem> user, issue:
251 </para>
252
253<screen role="root"><userinput>install -v -d -m755 /etc/mercurial &amp;&amp;
254cat &gt; /etc/mercurial/hgrc &lt;&lt; "EOF"
255<literal>[web]
256cacerts = /etc/pki/tls/certs/ca-bundle.crt</literal>
257EOF</userinput></screen>
258
259 </sect3>
260
261 </sect2>
262
263 <sect2 role="content">
264 <title>Contents</title>
265
266 <segmentedlist>
267 <segtitle>Installed Programs</segtitle>
268 <segtitle>Installed Libraries</segtitle>
269 <segtitle>Installed Directories</segtitle>
270
271 <seglistitem>
272 <seg>
273 hg
274 </seg>
275 <seg>
276 several internal modules under
277 /usr/lib/python&python3-majorver;/site-packages/mercurial
278 </seg>
279 <seg>
280 /etc/mercurial,
281 /usr/lib/python&python3-majorver;/site-packages/hgdemandimport,
282 /usr/lib/python&python3-majorver;/site-packages/hgext,
283 /usr/lib/python&python3-majorver;/site-packages/hgext3rd,
284 /usr/lib/python&python3-majorver;/site-packages/mercurial, and
285 /usr/lib/python&python3-majorver;/site-packages/mercurial-&mercurial-version;-py&python3-majorver;.egg-info
286 </seg>
287 </seglistitem>
288 </segmentedlist>
289
290 <variablelist>
291 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
292 <?dbfo list-presentation="list"?>
293 <?dbhtml list-presentation="table"?>
294
295 <varlistentry id="hg">
296 <term><command>hg</command></term>
297 <listitem>
298 <para>
299 is the mercurial version control system
300 </para>
301 <indexterm zone="mercurial hg">
302 <primary sortas="b-hg">hg</primary>
303 </indexterm>
304 </listitem>
305 </varlistentry>
306
307 </variablelist>
308
309 </sect2>
310
311</sect1>
Note: See TracBrowser for help on using the repository browser.