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 MD5 sum: d4aa5aeb09acb3307841022d279ab895

  • Download size: 4.7 MB

  • Estimated disk space required: 109 MB (additional 74 MB to install all bindings and 405 MB to run all test suites)

  • Estimated build time: 1.5 SBU (add 1.7 SBU for bindings and 2.2 SBU to run test suites)

Subversion Dependencies


Apache-2.2.8 (for the APR only) or Apache Portable Runtime or Subversion dependencies (see the INSTALL file for information on how to utilize this package)

If you require the Berkeley DB back-end hooks in Subversion to build or support BDB based repositories, you must have Berkeley DB linked into the APR-util library. There is information in the Apache-2.2.8 instructions that shows the required parameters to pass to the configure script when building any of the APR-util packages.


Python-2.5.2 (required to run the test suite), Apache-2.2.8 (if you have Apache Portable Runtime installed), neon*, and serf

* The configure script will warn that the installed neon version is not supported if the version is greater than 0.26.2. You can circumvent this warning by passing --disable-neon-version-check to the configure command. Note that this may or may not work, depending on the version of neon you have installed, but neon-0.26.3 is known to work.

Optional to Build the Java Bindings

JDK-6 Update 5 or Dante or Jikes, and JUnit-4.3.1 (to test the Java bindings)

Optional to Build the SWIG Bindings

SWIG**, Python-2.5.2, and Ruby-1.8.6-p111

** The configure script will issue warnings if the installed version of SWIG is greater than 1.3.29, but will attempt to use it anyway if you build the SWIG bindings. Versions of SWIG up to 1.3.31 are known to work.

User Notes:

Installation of Subversion

Install Subversion by running the following commands:

sed -i 's/@SVN_APR_INCLUDES@/& @CPPFLAGS@/' \

./configure --prefix=/usr &&

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

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

make javahl

If you have the necessary dependencies installed and you 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, issue: make check.

To test the results of the Java bindings build, issue make check-javahl. Note you must have the JUnit 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 &&
install -v -m755 -d /usr/share/doc/subversion-1.4.4 &&
cp -v -R doc/* /usr/share/doc/subversion-1.4.4

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.5/site-packages/subversion.pth &&

make install-swig-rb

Command Explanations

sed -i '...' .../ This command is used to fix a problem with compiling the Perl bindings. It can be ommitted if you're not building the bindings.

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

--with-apr=<prefix> --with-apr-util=<prefix>: These options should be used if you wish to use the system-installed version of the APR. Ensure you identify the correct installation prefix.

--with-apxs=/usr/sbin/apxs: This option should be used to identify the system-installed version of the apxs command installed during the Apache HTTPD installation as apxs might not be in an unprivileged user's PATH and won't be properly discovered.

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

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, svnsync and svnversion
Installed Libraries: libsvn*.{so,a} and optionally, a Java library, the, and Apache HTTP DSO modules and various Perl, Python and Ruby modules
Installed Directories: /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/ruby/site_ruby/x.x/i686-linux/svn, /usr/lib/svn-javahl (optional), /usr/lib/svn-python (optional) and /usr/share/doc/subversion-1.4.4

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 2008-03-17 13:11:35 -0500