Subversion-1.7.4

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

Package Information

Subversion Dependencies

Required

SQLite-3.7.11, Apr-Util-1.4.1 and neon-0.29.6 or serf.

If you require the Berkeley DB back-end hooks in Subversion to build or support BDB based repositories, you must have APR-util linked to the Berkeley DB library.

Optional

Python-2.7.3 (required to run the test suite), Berkeley DB-5.3.15, Cyrus SASL-2.1.25, OpenSSL-1.0.1c, D-Bus GLib Bindings-0.98, gnome-keyring-3.4.1, KWallet from KDE4 and Apache-2.4.1.

Optional (for the Java Bindings)

One of IcedTea6-1.9.7, Dante, or Jikes, and JUnit-4.10 (to test the Java bindings)

Optional (for the SWIG Bindings)

SWIG and Python-2.7.3.

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/subversion

Installation of Subversion

If you have the current version of Apache installed Subversion will try to compile mod_dav_svn.so to use with Apache-2.4.1 and the build will fail. Fix the bug with the following sed (not needed with Apache 2.2):

sed -i 's#save_errno#aprerr#' subversion/mod_dav_svn/util.c

Install Subversion by running the following commands:

./configure --prefix=/usr --disable-static &&
make

If you have Doxygen-1.7.5 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

Perl and/or Python

If you have a multi core CPU and normally run make with multiple jobs (eg make -j4) then a bug in the Makefile will prevent the Perl bindings compiling correctly. Fix the Makefile with this sed:

sed -i 's#Makefile.PL.in$#& libsvn_swig_perl#' Makefile.in &&

To compile the Perl and/or Python bindings issue any or all of the following commands:

make swig-pl &&
make swig-py

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

Now, as the root user:

make install &&
install -v -m755 -d /usr/share/doc/subversion-1.7.4 &&
cp      -v -R       doc/* \
                    /usr/share/doc/subversion-1.7.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

In order for Python to automatically discover the bindings, add /usr/lib/svn-python to the PYTHONPATH environment variable to the system or personal profiles.

Command Explanations

--disable-static: This stops it installing static versions of the libraries.

CC="gcc -std=gnu99": If you want to compile mod_dav_svn.so to use with Apache, configure will complain that your C compiler is not the same as the one that compiled Apache. To prevent this happening you can add CC="gcc -std=gnu99" (or whatever Apache used) to the configure options.

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.

Contents

Installed Programs: svn, svnadmin, svndumpfilter, svnlook, svnserve, svnsync and svnversion
Installed Libraries: libsvn*.so and optionally, a Java library, the mod_dav_svn.so, and and mod_authz_svn.so Apache HTTP DSO modules and various Perl and Python modules.
Installed Directories: /usr/include/subversion-1, /usr/lib/perl5/site_perl/5.12.1/i686-linux/auto/SVN (optional), /usr/lib/perl5/site_perl/5.12.1/i686-linux/SVN (optional), /usr/lib/ruby/site_ruby/x.x/i686-linux/svn (optional), /usr/lib/svn-javahl (optional), /usr/lib/svn-python (optional) and /usr/share/doc/subversion-1.7.4

Short Descriptions

svn

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

svnadmin

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

svndumpfilter

is a program for filtering Subversion repository dumpfile format streams.

svnlook

is a tool for inspecting a Subversion repository.

svnrdump

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

svnserve

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

svnsync

is a Subversion repository synchronisation tool.

svnversion

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

libsvn_*.so

are the support libraries used by the Subversion programs.

mod_authz_svn.so

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

mod_dav_svn.so

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 2012-05-07 20:29:46 +0000