source: general/prog/mercurial.xml@ bc5c19d

11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since bc5c19d was bc5c19d, checked in by Bruce Dubbs <bdubbs@…>, 3 years ago

Update to mercurial-5.8

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