source: general/prog/mercurial.xml@ 572553b

10.0 10.1 11.0 11.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind lazarus perl-modules qt5new trunk upgradedb xry111/intltool xry111/test-20220226
Last change on this file since 572553b was 572553b, checked in by Pierre Labastie <pieere@…>, 5 years ago

role="runtime|nodep" in general

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@19231 af4574ff-66df-0310-9fd7-8a98e5e911e0

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