%general-entities; ]> $Date$ Subversion-&subversion-version; Subversion 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 . &lfs101_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &subversion-md5sum; Download size: &subversion-size; Estimated disk space required: &subversion-buildsize; Estimated build time: &subversion-time; Subversion Dependencies Required and Recommended (for handling http:// and https:// URLs) Optional , , , , (for generating HTML documentation), , , (for tests) (with sqlite support for the tests), , (for building Perl, Python and Ruby bindings), LZ4, and UTF8proc Optional (for the Java Bindings) One of , Dante or Jikes, JUnit 4 (to test the Java bindings) and . User Notes: Installation of Subversion First, adapt some Python scripts to use python3: grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/' Install Subversion by running the following commands: PYTHON=python3 ./configure --prefix=/usr \ --disable-static \ --with-apache-libexecdir \ --with-lz4=internal \ --with-utf8proc=internal && make If you have installed and you wish to build the API documentation, issue: doxygen doc/doxygen.conf If you wish to build the Java bindings pass the 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 (for instance ) to configure. The JUnit jar file is no longer included in 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/python&python3-majorver;/site-packages/libsvn \ swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn # for Python make swig-rb # for Ruby To test the results, issue: make check. Four tests in the commit_tests.py, prop_tests.py, and update_tests.py suites are 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-&subversion-version; && cp -v -R doc/* /usr/share/doc/subversion-&subversion-version; 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/python&python3-majorver;/site-packages/libsvn \ swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn make install-swig-rb Command Explanations --with-apache-libexecdir: If 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 these switches if you have installed the optional dependencies. : enables compilation of Java high level bindings. Running make javahl is necessary to do the compilation. : gives the location of the junit jar, otherwise the javahl tests cannot be run. : Do not use the Googlemock testing framework. Configuring Subversion Config Files ~/.subversion/config and /etc/subversion/config ~/.subversion/config /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 Installed Libraries Installed Directories svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc, svnrdump, svnserve, svnsync, and svnversion libsvn_*-1.so and optionally, a Java library, the mod_dav_svn.so and and mod_authz_svn.so Apache HTTP DSO modules and various Perl, Python and Ruby modules. /usr/include/subversion-1, /usr/lib/perl5/site_perl/&lfs-perl-version;/{,auto/}SVN, /usr/lib/python&python3-majorver;/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-&subversion-version; Short Descriptions svn is a command-line client program used to access Subversion repositories svn svnadmin is a tool for creating, tweaking or repairing a Subversion repository svnadmin svnbench is a benchmarking tool svnbench svndumpfilter is a program for filtering Subversion repository dumpfile format streams svndumpfilter svnfsfs is the FSFS (FileSystem atop of the FileSystem - Subversion filesystem implementation) repository manipulation tool svnfsfs svnlook is a tool for inspecting a Subversion repository svnlook svnmucc is a Multiple URL Command Client for Subversion svnmucc svnrdump is a tool for dumping or loading a remote Subversion repository svnrdump svnserve is a custom standalone server program, able to run as a daemon process or invoked by SSH svnserve svnsync is a Subversion repository synchronisation tool svnsync svnversion is used to report the version number and state of a working Subversion repository copy svnversion libsvn_*-1.so are the support libraries used by the Subversion programs libsvn_*-1.so 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_authz_svn.so 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 mod_dav_svn.so