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-10.0 platform.

Package Information

  • Download (HTTP):

  • Download MD5 sum: 8f6c50632355ae08445c2ed63ba9689e

  • Download size: 8.1 MB

  • Estimated disk space required: 176 MB (add 93 MB for bindings, 26 MB for docs, 1.1 GB for tests)

  • Estimated build time: 0.5 SBU (Using parallelism=4; add 1.4 SBU for bindings, 29 SBU for tests)

Subversion Dependencies


Apr-Util-1.6.1 and SQLite-3.33.0



Apache-2.4.46, Cyrus SASL-2.1.27, dbus-1.12.20, gnome-keyring-3.36.0, libsecret-0.20.3, Py3c-1.2 (for tests) Python-2.7.18 (with sqlite support for the tests), Ruby-2.7.1, SWIG-4.0.2 (for building Perl, Python and Ruby bindings), LZ4, and UTF8proc

Optional (for the Java Bindings)

One of OpenJDK-14.0.1, Dante or Jikes, JUnit 4 (to test the Java bindings) and apache-ant-1.10.8.

User Notes:

Installation of Subversion

Install Subversion by running the following commands:

PYTHON=python3 ./configure --prefix=/usr             \
            --disable-static          \
            --with-apache-libexecdir  \
            --with-lz4=internal       \
            --with-utf8proc=internal &&

If you have Doxygen-1.8.19 installed and you wish to build the API documentation, issue:

doxygen doc/doxygen.conf

If you wish to build the Java bindings pass the --enable-javahl parameter to the configure command. In addition, if you want to run the Java test suite, you have to specify the location of the JUnit file by adding --with-junit=<path to junit jar> (for instance --with-junit=/usr/local/java/lib/junit-4.13.jar) to configure. The JUnit jar file is no longer included in apache-ant-1.10.8 and must be downloaded seperatly. To build the Java bindings, issue the following command:

make javahl

If you want to compile Perl, Python, or Ruby bindings, issue any of the following command:

make swig-pl # for Perl
make swig-py \
     swig_pydir=/usr/lib/python3.8/site-packages/libsvn \
     swig_pydir_extra=/usr/lib/python3.8/site-packages/svn # for Python
make swig-rb # for Ruby

To test the results, issue: make check. The test is known to fail.

To test the results of the Java bindings build, issue LANG=C make check-javahl.

To test the results of any of the SWIG bindings, you can use any of the following commands: make check-swig-pl, make check-swig-py, or make check-swig-rb.

Now, as the root user:

make install &&

install -v -m755 -d /usr/share/doc/subversion-1.14.0 &&
cp      -v -R doc/* /usr/share/doc/subversion-1.14.0

If you built the Java bindings, issue the following command as the root user to install them:

make install-javahl

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

make install-swig-pl
make install-swig-py \
      swig_pydir=/usr/lib/python3.8/site-packages/libsvn \
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.46 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.

--with-lz4=internal, --with-utf8proc=internal: Remove them if you have installed the optional dependencies.

--enable-javahl: enables compilation of Java high level bindings. Running make javahl is necessary to do the compilation.

--with-junit=<location of the junit jar file>: gives the location of the junit jar, otherwise the javahl tests cannot be run.

--disable-gmock: Do not use the Googlemock testing framework.

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, svnbench, svndumpfilter, svnfsfs, 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.32/{,auto/}SVN, /usr/lib/python3.8/site-packages/{libsvn,svn}, /usr/lib/ruby/site_ruby/<x.y.z>/{,<arch-linux>-linux/}svn, /usr/lib/svn-javahl, and /usr/share/doc/subversion-1.14.0

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 benchmarking tool.


is a program for filtering Subversion repository dumpfile format streams.


is the FSFS (FileSystem atop of the FileSystem - Subversion filesystem implementation) repository manipulation tool.


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 2020-08-16 23:23:35 -0700