source: general/prog/subversion.xml@ 12f7c85

trunk
Last change on this file since 12f7c85 was 2998eb65, checked in by Bruce Dubbs <bdubbs@…>, 11 hours ago

Clean up subversion page.

  • Property mode set to 100644
File size: 19.1 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 subversion-download-http "https://archive.apache.org/dist/subversion/subversion-&subversion-version;.tar.bz2">
8 <!ENTITY subversion-download-ftp " ">
9 <!ENTITY subversion-md5sum "be9f6c5e8bb80e465152b4c5160d7f54">
10 <!ENTITY subversion-size "8.1 MB">
11 <!-- for 1.12.0 1.12.2 1.13.0
12 make javahl: 0.5 SBU 28 MB; not avail
13 swig-pl: 0.8 42 MB; 0.7 SBU 43 MB; 0.6 SBU 44 MB
14 swig-py: 0.6 26 MB; 0.5 28 MB; 0.5 28 MB
15 swig-rb: 0.4 22 MB; 0.4 21 MB; 0.3 21 MB
16 docs: 2 secs 26 MB; 2 sec 27 MB; 2 sec 26 MB
17 tests 46 min 1104 MB 46:52 1103 MB 47 min -->
18 <!ENTITY subversion-buildsize "193 MB (add 189 MB for bindings, 54 MB for docs, 1.3 GB for tests)">
19 <!ENTITY subversion-time "0.4 SBU (Using parallelism=4; add 2.0 SBU for bindings, 30 SBU for tests)">
20]>
21
22<sect1 id="subversion" xreflabel="Subversion-&subversion-version;">
23 <?dbhtml filename="subversion.html"?>
24
25
26 <title>Subversion-&subversion-version;</title>
27
28 <indexterm zone="subversion">
29 <primary sortas="a-Subversion">Subversion</primary>
30 </indexterm>
31
32 <sect2 role="package">
33 <title>Introduction to Subversion</title>
34
35 <para>
36 <application>Subversion</application> is a version control system that is
37 designed to be a compelling replacement for <application>CVS</application>
38 in the open source community. It extends and enhances
39 <application>CVS</application>' feature set, while maintaining a similar
40 interface for those already familiar with <application>CVS</application>.
41 These instructions install the client and server software used to
42 manipulate a <application>Subversion</application> repository. Creation of
43 a repository is covered at <xref linkend="svnserver"/>.
44 </para>
45
46 &lfs122_checked;
47
48 <bridgehead renderas="sect3">Package Information</bridgehead>
49 <itemizedlist spacing="compact">
50 <listitem>
51 <para>
52 Download (HTTP): <ulink url="&subversion-download-http;"/>
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download (FTP): <ulink url="&subversion-download-ftp;"/>
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download MD5 sum: &subversion-md5sum;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Download size: &subversion-size;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Estimated disk space required: &subversion-buildsize;
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 Estimated build time: &subversion-time;
78 </para>
79 </listitem>
80 </itemizedlist>
81
82 <bridgehead renderas="sect3">Subversion Dependencies</bridgehead>
83
84 <bridgehead renderas="sect4">Required</bridgehead>
85 <para role="required">
86 <xref linkend="apr-util"/> and
87 <xref linkend="sqlite"/>
88 </para>
89
90 <bridgehead renderas="sect4">Recommended</bridgehead>
91 <para role="recommended">
92 <xref linkend="serf"/> (for handling http:// and https:// URLs) and
93 <xref linkend="swig"/> (for regenerating the build system)
94 </para>
95
96 <bridgehead renderas="sect4">Optional</bridgehead>
97 <para role="optional">
98 <xref linkend="apache"/>,
99 <xref linkend="boost"/>,
100 <xref linkend="cyrus-sasl"/>,
101 <xref linkend="dbus"/>,
102 <xref linkend="doxygen"/> (for generating HTML documentation),
103 <xref linkend="gnome-keyring"/>,
104 <xref linkend="libsecret"/>,
105 <xref linkend="py3c"/> (for the python bindings, and tests),
106 <xref linkend="python3"/> (with sqlite support for the tests),
107 <xref linkend="ruby"/>, and
108 <ulink url="https://git.netsurf-browser.org/libutf8proc.git/">UTF8proc</ulink>
109 </para>
110
111 <bridgehead renderas="sect4">Optional (for the Java Bindings)</bridgehead>
112 <para role="optional">
113 One of <xref linkend="openjdk"/>,
114 <ulink url="https://www.inet.no/dante/">Dante</ulink> or
115 <ulink url="https://jikes.sourceforge.net/">Jikes</ulink>,
116 <ulink url="https://junit.org/junit4/">JUnit 4</ulink> (to test the Java bindings) and
117 <xref linkend="apache-ant"/>.
118 </para>
119
120 </sect2>
121
122 <sect2 role="installation">
123 <title>Installation of Subversion</title>
124
125 <para>
126 Install <application>Subversion</application> by running the following
127 commands:
128 </para>
129
130<screen><userinput>PYTHON=python3 \
131./configure --prefix=/usr \
132 --disable-static \
133 --with-apache-libexecdir \
134 --with-utf8proc=internal &amp;&amp;
135make</userinput></screen>
136
137 <para>
138 If you have <xref linkend="doxygen"/> installed and you wish to build the
139 API documentation, issue:
140 </para>
141
142<screen remap="doc"><userinput>doxygen doc/doxygen.conf</userinput></screen>
143
144 <para>
145 If you wish to build the Java bindings pass the <option>--enable-javahl</option>
146 parameter to the <command>configure</command> command. In addition, if
147 you want to run the Java test suite, you have to specify the location
148 of the <application>JUnit</application> file by adding
149 <option>--with-junit=&lt;path to junit jar&gt;</option> (for
150 instance <option>--with-junit=/usr/local/java/lib/junit-4.13.jar</option>)
151 to <command>configure</command>. The JUnit jar file is no longer
152 included in <xref linkend="apache-ant"/> and must be downloaded
153 separately. To build the Java bindings, issue the following command:
154 </para>
155
156 <para>
157 <screen><command>make -j1 javahl</command></screen>
158 </para>
159
160 <para>
161 If you want to compile <application>Perl</application>,
162 <application>Python</application>, or <application>Ruby</application>
163 bindings, issue any of the following command:
164 </para>
165
166<screen><command>make swig-pl</command> # for <application>Perl</application>
167<command>make swig-py \
168 swig_pydir=/usr/lib/python&python3-majorver;/site-packages/libsvn \
169 swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn</command> # for <application>Python</application>
170<command>make swig-rb</command> # for <application>Ruby</application></screen>
171
172 <para>
173 To test the results, issue: <command>make check</command>. Four tests in
174 the <filename>commit_tests.py</filename>,
175 <filename>prop_tests.py</filename>, and
176 <filename>update_tests.py</filename> suites are known to fail. Due to
177 changes in Python-3.12, you can expect to see around 200 Syntax Warnings
178 during the test suite due to invalid escape sequences.
179 </para>
180
181 <para>
182 To test the results of any of the <application>SWIG</application>
183 bindings, you can use any of the following commands:
184 <command>make check-swig-pl</command>,
185 <command>make check-swig-py</command>, or
186 <command>make check-swig-rb</command>.
187 </para>
188
189 <para>
190 Now, as the <systemitem class="username">root</systemitem> user:
191 </para>
192
193<screen role="root"><userinput>make install &amp;&amp;
194
195install -v -m755 -d /usr/share/doc/subversion-&subversion-version; &amp;&amp;
196cp -v -R doc/* /usr/share/doc/subversion-&subversion-version;</userinput></screen>
197
198 <para>
199 If you built the Java bindings, issue the following command as the
200 <systemitem class="username">root</systemitem> user to install them:
201 </para>
202 <para>
203<screen><command>make install-javahl</command></screen>
204 </para>
205
206 <para>
207 If you built the <application>Perl</application>,
208 <application>Python</application>, or
209 <application>Ruby</application> bindings, issue any of the following
210 commands as the <systemitem class="username">root</systemitem> user
211 to install them:
212 </para>
213 <para>
214<screen><command>make install-swig-pl</command>
215<command>make install-swig-py \
216 swig_pydir=/usr/lib/python&python3-majorver;/site-packages/libsvn \
217 swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn</command>
218<command>make install-swig-rb</command></screen>
219 </para>
220
221 <para>
222 The java bindings need to be installed in order for the tests to run,
223 since the tests attempt to look for them in CLASSPATH. To test the
224 results of the Java bindings build, issue
225 <command>LANG=C make check-javahl</command>.
226 <!-- ~~ This explanation is added to the configure above ~~
227 The <application>JUnit</application> testing framework must be installed,
228 and the location of the JUnit jar has to be specified by passing the
229 <option>- -with-junit=&lt;path to junit jar&gt;</option> parameter to
230 <command>configure</command>. Note that <application>JUnit</application>
231 is included in <xref linkend="apache-ant"/>, and can be accessed by
232 passing <option>- -with-junit=/opt/ant/lib/junit-4.12.jar</option>
233 to <command>configure</command>.
234 -->
235 </para>
236 </sect2>
237
238 <sect2 role="commands">
239 <title>Command Explanations</title>
240
241 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
242 href="../../xincludes/static-libraries.xml"/>
243
244 <para>
245 <parameter>--with-apache-libexecdir</parameter>:
246 If <xref linkend="apache"/> is installed, the shared
247 <application>Apache</application> modules are
248 built. This switch allows to have those modules installed to
249 <application>Apache</application>'s configured module dir instead
250 of <filename class="directory">/usr/libexec</filename>. It has no effect
251 if <application>Apache</application> is not installed.
252 </para>
253
254 <para>
255 <parameter>--with-utf8proc=internal</parameter>:
256 Remove these switches if you have installed the optional dependencies.
257 </para>
258
259 <para>
260 <option>--enable-javahl</option>: enables compilation of Java high level
261 bindings. Running <command>make javahl</command> is necessary to do
262 the compilation.
263 </para>
264
265 <para>
266 <option>--with-junit=&lt;location of the junit jar file&gt;</option>:
267 gives the location of the junit jar, otherwise the javahl tests cannot
268 be run.
269 </para>
270
271 <para>
272 <option>--disable-gmock</option>: Do not use the Googlemock testing
273 framework.
274 </para>
275
276 </sect2>
277
278 <sect2 role="configuration">
279 <title>Configuring Subversion</title>
280
281 <sect3 id="subversion-config">
282 <title>Config Files</title>
283
284 <para>
285 <filename>~/.subversion/config</filename> and
286 <filename>/etc/subversion/config</filename>
287 </para>
288
289 <indexterm zone="subversion subversion-config">
290 <primary sortas="e-AA.subversion/config">~/.subversion/config</primary>
291 </indexterm>
292
293 <indexterm zone="subversion subversion-config">
294 <primary sortas="e-etc-subversion-config">/etc/subversion/config</primary>
295 </indexterm>
296 </sect3>
297
298 <sect3>
299 <title>Configuration Information</title>
300
301 <para>
302 <filename>/etc/subversion/config</filename> is the
303 <application>Subversion</application> system-wide configuration file.
304 This file is used to specify defaults for different
305 <command>svn</command> commands.
306 </para>
307
308 <para>
309 <filename>~/.subversion/config</filename> is the user's personal
310 configuration file. It is used to override the system-wide defaults set
311 in <filename>/etc/subversion/config</filename>.
312 </para>
313 </sect3>
314
315 </sect2>
316
317 <sect2 role="content">
318 <title>Contents</title>
319
320 <segmentedlist>
321 <segtitle>Installed Programs</segtitle>
322 <segtitle>Installed Libraries</segtitle>
323 <segtitle>Installed Directories</segtitle>
324
325 <seglistitem>
326 <seg>
327 svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc,
328 svnrdump, svnserve, svnsync, and svnversion
329 </seg>
330 <seg>
331 libsvn_*-1.so and optionally, a Java library, the mod_dav_svn.so and
332 mod_authz_svn.so <application>Apache HTTP</application> DSO
333 modules and various <application>Perl</application>,
334 <application>Python</application> and
335 <application>Ruby</application> modules.
336 </seg>
337 <seg>
338 /usr/include/subversion-1,
339 /usr/lib/perl5/site_perl/&lfs-perl-version;/{,auto/}SVN,
340 /usr/lib/python&python3-majorver;/site-packages/{libsvn,svn},
341 /usr/lib/ruby/site_ruby/&lt;x.y.z&gt;/{,&lt;arch-linux&gt;-linux/}svn,
342 /usr/lib/svn-javahl, and
343 /usr/share/doc/subversion-&subversion-version;
344 </seg>
345 </seglistitem>
346 </segmentedlist>
347
348 <variablelist>
349 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
350 <?dbfo list-presentation="list"?>
351 <?dbhtml list-presentation="table"?>
352
353 <varlistentry id="svn">
354 <term><command>svn</command></term>
355 <listitem>
356 <para>
357 is a command-line client program used to access
358 <application>Subversion</application> repositories
359 </para>
360 <indexterm zone="subversion svn">
361 <primary sortas="b-svn">svn</primary>
362 </indexterm>
363 </listitem>
364 </varlistentry>
365
366 <varlistentry id="svnadmin">
367 <term><command>svnadmin</command></term>
368 <listitem>
369 <para>
370 is a tool for creating, tweaking or repairing a
371 <application>Subversion</application> repository
372 </para>
373 <indexterm zone="subversion svnadmin">
374 <primary sortas="b-svnadmin">svnadmin</primary>
375 </indexterm>
376 </listitem>
377 </varlistentry>
378
379 <varlistentry id="svnbench">
380 <term><command>svnbench</command></term>
381 <listitem>
382 <para>
383 is a benchmarking tool
384 </para>
385 <indexterm zone="subversion svnbench">
386 <primary sortas="b-svnbench">svnbench</primary>
387 </indexterm>
388 </listitem>
389 </varlistentry>
390
391 <varlistentry id="svndumpfilter">
392 <term><command>svndumpfilter</command></term>
393 <listitem>
394 <para>
395 is a program for filtering <application>Subversion</application>
396 repository dumpfile format streams
397 </para>
398 <indexterm zone="subversion svndumpfilter">
399 <primary sortas="b-svndumpfilter">svndumpfilter</primary>
400 </indexterm>
401 </listitem>
402 </varlistentry>
403
404 <varlistentry id="svnfsfs">
405 <term><command>svnfsfs</command></term>
406 <listitem>
407 <para>
408 is the FSFS (FileSystem atop of the FileSystem -
409 <application>Subversion</application> filesystem implementation)
410 repository manipulation tool
411 </para>
412 <indexterm zone="subversion svnfsfs">
413 <primary sortas="b-svnfsfs">svnfsfs</primary>
414 </indexterm>
415 </listitem>
416 </varlistentry>
417
418 <varlistentry id="svnlook">
419 <term><command>svnlook</command></term>
420 <listitem>
421 <para>
422 is a tool for inspecting a <application>Subversion</application>
423 repository
424 </para>
425 <indexterm zone="subversion svnlook">
426 <primary sortas="b-svnlook">svnlook</primary>
427 </indexterm>
428 </listitem>
429 </varlistentry>
430
431 <varlistentry id="svnmucc">
432 <term><command>svnmucc</command></term>
433 <listitem>
434 <para>
435 is a Multiple URL Command Client for <application>Subversion</application>
436 </para>
437 <indexterm zone="subversion svnmucc">
438 <primary sortas="b-svnmucc">svnmucc</primary>
439 </indexterm>
440 </listitem>
441 </varlistentry>
442
443 <varlistentry id="svnrdump">
444 <term><command>svnrdump</command></term>
445 <listitem>
446 <para>
447 is a tool for dumping or loading a remote
448 <application>Subversion</application> repository
449 </para>
450 <indexterm zone="subversion svnrdump">
451 <primary sortas="b-svnrdump">svnrdump</primary>
452 </indexterm>
453 </listitem>
454 </varlistentry>
455
456 <varlistentry id="svnserve">
457 <term><command>svnserve</command></term>
458 <listitem>
459 <para>
460 is a custom standalone server program, able to run as a daemon
461 process or invoked by SSH
462 </para>
463 <indexterm zone="subversion svnserve">
464 <primary sortas="b-svnserve">svnserve</primary>
465 </indexterm>
466 </listitem>
467 </varlistentry>
468
469 <varlistentry id="svnsync">
470 <term><command>svnsync</command></term>
471 <listitem>
472 <para>
473 is a <application>Subversion</application> repository
474 synchronisation tool
475 </para>
476 <indexterm zone="subversion svnsync">
477 <primary sortas="b-svnsync">svnsync</primary>
478 </indexterm>
479 </listitem>
480 </varlistentry>
481
482 <varlistentry id="svnversion">
483 <term><command>svnversion</command></term>
484 <listitem>
485 <para>
486 is used to report the version number and state of a working
487 <application>Subversion</application> repository copy
488 </para>
489 <indexterm zone="subversion svnversion">
490 <primary sortas="b-svnversion">svnversion</primary>
491 </indexterm>
492 </listitem>
493 </varlistentry>
494
495 <varlistentry id="libsvn_star-1">
496 <term><filename class="libraryfile">libsvn_*-1.so</filename></term>
497 <listitem>
498 <para>
499 are the support libraries used by the
500 <application>Subversion</application> programs
501 </para>
502 <indexterm zone="subversion libsvn_star-1">
503 <primary sortas="c-libsvn_star-1">libsvn_*-1.so</primary>
504 </indexterm>
505 </listitem>
506 </varlistentry>
507
508 <varlistentry id="mod_authz_svn">
509 <term><filename class="libraryfile">mod_authz_svn.so</filename></term>
510 <listitem>
511 <para>
512 is a plug-in module for the <application>Apache</application> HTTP
513 server, used to authenticate users to a
514 <application>Subversion</application> repository over the Internet
515 or an intranet
516 </para>
517 <indexterm zone="subversion mod_authz_svn">
518 <primary sortas="c-mod_authz_svn">mod_authz_svn.so</primary>
519 </indexterm>
520 </listitem>
521 </varlistentry>
522
523 <varlistentry id="mod_dav_svn">
524 <term><filename class="libraryfile">mod_dav_svn.so</filename></term>
525 <listitem>
526 <para>
527 is a plug-in module for the <application>Apache</application> HTTP
528 server, used to make a <application>Subversion</application>
529 repository available to others over the Internet or an intranet
530 </para>
531 <indexterm zone="subversion mod_dav_svn">
532 <primary sortas="c-mod_authz_svn">mod_dav_svn.so</primary>
533 </indexterm>
534 </listitem>
535 </varlistentry>
536
537 </variablelist>
538
539 </sect2>
540
541</sect1>
Note: See TracBrowser for help on using the repository browser.