Introduction to Subversion

Subversion is a version control system that is designed to be a compelling replacement for CVS in the open source community. It extends and enhances CVS' feature set, while maintaining a similar interface for those already familiar with CVS. These instructions install the client and server software used to manipulate a Subversion repository. Creation of a repository is covered at Running a Subversion Server.

This package is known to build and work properly using an LFS-7.6 systemd platform.

Package Information

  • Download (HTTP):

  • Download MD5 sum: 766a89bbbb388f8eb76166672d3b9e49

  • Download size: 6.6 MB

  • Estimated disk space required: 143 MB (284 MB with all bindings and API documentation built; additional 968 MB for tests)

  • Estimated build time: 0.9 SBU (Additional 30 SBU to build documentation, all bindings and to run full test suite.)

Subversion Dependencies


Apr-Util-1.5.4 and SQLite-



Apache-2.4.10, Cyrus SASL-2.1.26, D-Bus, KDELibs-4.14.3 (for KWallet support), Python-2.7.9 (with sqlite support for the tests), Ruby-2.1.5, and SWIG-3.0.2 (for building Perl, Python and Ruby bindings)

Optional (for the Java Bindings)

One of OpenJDK-, Dante or Jikes, and JUnit-4.11 (to test the Java bindings)

User Notes:

Installation of Subversion

Install Subversion by running the following commands:

./configure --prefix=/usr    \
            --disable-static \
            --with-apache-libexecdir &&

If you have Doxygen-1.8.9 installed and you wish to build the API documentation, issue: doxygen doc/doxygen.conf.

If you are using multiple jobs to compile packages, then fix a bug in the Makefile will prevent the Perl bindings from compiling correctly:

sed -i '$#& libsvn_swig_perl#'

If you want to compile Java, Perl, Python2 or Ruby bindings, issue any of the following commands:



Make sure that you have passed --enable-javahl switch to configure before trying to build the Java bindings.

For Java bindings:

make javahl

For Perl bindings:

make swig-pl

For Python2 bindings:

make swig-py \
     swig_pydir=/usr/lib/python2.7/site-packages/libsvn \

For Ruby bindings:

make swig-rb

To test the results, issue: make -k check. One test (wc-queries-test) is known to fail with recent versions of SQLite.

To test the results of any of the SWIG bindings, you can use any of the following commands: make check-javahl, make check-swig-pl, make check-swig-py or make check-swig-rb. Note you must have the JUnit testing framework installed if running the Java bindings tests.

Now, as the root user:

make -j1 install &&
install -v -m755 -d /usr/share/doc/subversion-1.8.11 &&
cp      -v -R       doc/* \

If you have built any of the Java, Perl, Python2 or Ruby bindings, issue any of the following commands as the root user to install them:

For Java bindings:

make install-javahl

For Perl bindings:

make install-swig-pl

For Python2 bindings:

make install-swig-py \
     swig_pydir=/usr/lib/python2.7/site-packages/libsvn \

For Ruby bindings:

make install-swig-rb

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.

--with-apache-libexecdir: If Apache-2.4.10 is installed, the shared Apache modules are built. This switch allows to have those modules installed to Apache's configured module dir instead of /usr/libexec. It has no effect if Apache is not installed.

Configuring Subversion

Config Files

~/.subversion/config and /etc/subversion/config

Configuration Information

/etc/subversion/config is the Subversion system-wide configuration file. This file is used to specify defaults for different svn commands.

~/.subversion/config is the user's personal configuration file. It is used to override the system-wide defaults set in /etc/subversion/config.


Installed Programs: svn, svnadmin, svndumpfilter, svnlook, svnmucc, svnrdump, svnserve, svnsync, and svnversion
Installed Libraries: libsvn_* and optionally, a Java library, the and and Apache HTTP DSO modules and various Perl, Python and Ruby modules.
Installed Directories: /usr/include/subversion-1, /usr/lib/perl5/site_perl/<5.x.y>/<arch-linux>/auto/SVN (optional), /usr/lib/perl5/site_perl/<5.x.y>/<arch-linux>/SVN (optional), /usr/lib/python2.7/site-packages/libsvn (optional), /usr/lib/python2.7/site-packages/svn (optional), /usr/lib/ruby/site_ruby/<x.y>/i686-linux/svn (optional), /usr/lib/ruby/site_ruby/<x.y>/svn (optional), /usr/lib/svn-javahl (optional), and /usr/share/doc/subversion-1.8.11

Short Descriptions


is a command-line client program used to access Subversion repositories.


is a tool for creating, tweaking or repairing a Subversion repository.


is a program for filtering Subversion repository dumpfile format streams.


is a tool for inspecting a Subversion repository.


is a Multiple URL Command Client for Subversion.


is a tool for dumping or loading a remote Subversion repository.


is a custom standalone server program, able to run as a daemon process or invoked by SSH.


is a Subversion repository synchronisation tool.


is used to report the version number and state of a working Subversion repository copy.


are the support libraries used by the Subversion programs.

is a plug-in module for the Apache HTTP server, used to authenticate users to a Subversion repository over the Internet or an intranet.

is a plug-in module for the Apache HTTP server, used to make a Subversion repository available to others over the Internet or an intranet.

Last updated on 2014-12-19 07:11:26 +0000