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.

Package Information

  • Download (HTTP):

  • Download (FTP):

  • Download MD5 sum: 07b95963968ae345541ca99d0e7bf082

  • Download size: 6.7 MB

  • Estimated disk space required: 100 MB (additional 57 MB to install all bindings and 465 MB to run all test suites)

  • Estimated build time: 1.7 SBU (add 1.1 SBU for bindings and 20-60 minutes to run test suites)

Subversion Dependencies


Python-2.4.4 (required to run the test suite), Apache-2.2.2 or Apache Portable Runtime, neon-0.25.5, JDK-1.5.0_10 (to build the Java bindings), JUnit (required for running the Java bindings test suite and requires UnZip-5.52), Dante (alternate Java compiler), and Jikes (another alternate Java compiler)

Optional for the Bundled Version of Neon

pkg-config-0.20, libxml2-2.6.26 or expat-2.0.0, OpenSSL-0.9.8d, Heimdal-0.7.2 or MIT Kerberos V5-1.6

Optional for the Bundled Version of Apache Portable Runtime

expat-2.0.0 and GDBM-1.8.3

Optional to Build the SWIG Bindings

SWIG, Python-2.4.4, and Ruby-1.8.5

Note that the Python, Perl and Ruby bindings will not compile properly with the current version of SWIG. To build the bindings, you must have SWIG-1.3.{24,25} installed. Complete instructions for building the SWIG bindings can be found in the Subversion source tree file ./subversion/bindings/swig/INSTALL.

User Notes:

Installation of Subversion



For reasons that are not yet fully understood, Subversion repositories based on some versions of Berkeley DB (notably 4.4.x) may not perform reliably. Though there have been no reports of corrupted databases caused by this issue, the Subversion test suite may report a failure in one of the tests due to problems opening a repository based on Berkeley DB. This issue only affects BDB-based repositories on a local installation and does not affect access to a BDB-based repository on a remote system built with older versions of Subversion or Berkeley DB.

For these reasons, the Berkeley DB back-end is disabled, and any local BDB-based repositories you may have will be unavailable after installing Subversion using the following instructions. Please reference the information at if you need to migrate your repositores.

Install Subversion by running the following commands:

./configure --prefix=/usr \
            --without-berkeley-db \
            --with-installbuilddir=/usr/lib/apr-0 &&


If you have Apache installed, pass the --with-apr=/usr and --with-apr-util=/usr switches to the configure script. Otherwise, Subversion will overwrite APR and APR-utils from the Apache installation with the source distribution files. You may also need to pass --with-apxs=/usr/sbin/apxs as apxs might not be in an unprivileged user's PATH and won't be properly discovered. Additionally if you have Apache installed, you may safely remove the --with-installbuilddir=/usr/lib/apr-0 parameter as it will have no effect.

If you passed the --enable-javahl parameter to configure and wish to build the Java bindings, issue the following command:

make javahl

If you passed the -with-swig parameter to configure and wish to build the Perl, Python and/or Ruby bindings, issue any or all of the following commands:

make swig-pl &&
make swig-py &&
make swig-rb

To test the results of the Subversion build, issue: make check. This will take quite a long time.



The fs-base-test is known to fail with issues surrounding the Berkely database installation. As mentioned earlier, it is not yet fully understood why this test fails.

To test the results of the Java bindings build, issue make check-javahl. Note you must have the JUnit (version 3.8.x) testing framework installed.

To test the results of any or all of the SWIG bindings, you can use the following commands:

make check-swig-pl &&
make check-swig-py &&
make check-swig-rb

Now, as the root user:

make install &&
rm doc/{Makefile,doxygen.conf} &&
find doc -type d -exec chmod 755 {} \; &&
find doc -type f -exec chmod 644 {} \; &&
install -v -m755 -d /usr/share/doc/subversion-1.3.1 &&
cp -v -R doc/* /usr/share/doc/subversion-1.3.1

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

make install-javahl

If you built any of the SWIG bindings, issue any or all of the following commands as the root user to install them:

make install-swig-pl &&

make install-swig-py &&
echo /usr/lib/svn-python \
    > /usr/lib/python2.4/site-packages/subversion.pth &&

make install-swig-rb

Command Explanations

--with-installbuilddir=/usr/lib/apr-0: This parameter is used (and only has an effect if you used the source provided version of Apache Portable Runtime) to force the installation of some APR-related support programs to /usr/lib/apr-0 instead of /usr/build.

--with-neon=<prefix>: This option should be used if you wish to use a system-installed version of neon.

--with-ssl: This switch enables OpenSSL support in neon (only required if you use the bundled version of neon).

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, svnserve, svnversion, and optionally, neon-config and apr-config
Installed Libraries: libsvn*.{so,a} and optionally, libneon.{so,a} and the, and Apache HTTP DSO modules
Installed Directories: /etc/subversion, /usr/include/neon (optional), /usr/include/subversion-1, /usr/lib/perl5/site_perl/5.8.8/i686-linux/auto/SVN (optional), /usr/lib/perl5/site_perl/5.8.8/i686-linux/SVN (optional), /usr/lib/svn-javahl (optional), /usr/lib/svn-python (optional), /usr/share/doc/neon-0.25.5 (optional), and /usr/share/doc/subversion-1.3.1

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 custom standalone server program, able to run as a daemon process or invoked by SSH.


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


is a script which provides information about an installed copy of the neon library.


are the support libraries used by the Subversion programs.


is used as a high-level interface to common HTTP and WebDAV methods.

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 2006-06-21 11:26:07 -0500