Initial Subversion Installation

Subversion will be a part of Debian 'sarge'. It is not a part of Debian 'woody'. However, a package has been backported:

   deb http://people.debian.org/~cjwatson/subversion-woody/ ./

Install Subversion and related libraries:

   daystrom:/root# apt-get install subversion subversion-tools
   Reading Package Lists... Done
   Building Dependency Tree... Done
   The following extra packages will be installed:
     db4.1-util libapr0 libdb4.1 libneon23 libsvn0 libswig1.3
   python2.1-subversion
   The following NEW packages will be installed:
     db4.1-util libapr0 libdb4.1 libneon23 libsvn0 libswig1.3
   python2.1-subversion subversion subversion-tools
   0 packages upgraded, 9 newly installed, 0 to remove and 0  not upgraded.
   Need to get 2122kB/3768kB of archives. After unpacking 11.6MB will be used.
   Do you want to continue? [Y/n]

I use a "public services" model on my server, meaning that I put the public services all in the same group. Since I'm the only one on the server, it simplifies administration.

   daystrom:/opt/public# useradd -g public -G public -d /opt/public/svn -s/bin/ksh -c "Subversion User" svn

The Subversion home directory is also the place that the repositories will be stored. It will be owned svn:public so users in the public group can have access to the directory:

   daystrom:/opt/public# mkdir svn
   daystrom:/opt/public# chown svn:public svn
   daystrom:/opt/public# chmod 2775 svn:public svn

It's important to set the gid bit (that's the '2', above) so that files created in the directory will automatically have the correct group, in this case 'public'.


I intend to use svnserve over ssh. The INSTALL manual has this to say:

   As of svn 0.16, we have a new repository-access implementation,
   libsvn_ra_svn (on the client side) and the 'svnserve' process on
   the server.  This is a simple network layer that speaks a custom
   protocol over plain TCP (documented in libsvn_ra_svn/protocol):

      $ svnserve -d     # becomes a background daemon
      $ svn checkout svn://localhost/usr/local/svn/repository

   You can use the "-r" option to svnserve to set a logical root
   for repositories, and the "-R" option to restrict connections to
   read-only access.  ("Read-only" is a logical term here; svnserve
   still needs write access to the database in this mode, but will
   not allow commits or revprop changes.)

   (Expect the server invocation options to change incompatibly
   before they are finalized.)

   For now, svnserve in daemon mode only supports anonymous access.
   But you can also tunnel ra_svn over ssh or any similar tool:

      $ svn checkout svn+ssh://hostname/usr/local/svn/repository

   In this mode of operation, there is no svnserve daemon process;
   the svn client will ssh to the server and run "svnserve -t" to
   do the serving.  Make sure svnserve is in your path on the
   server.  You can override the "ssh" command with the SVN_SSH
   environment variable, or you can define new tunnel schemes in
   the [tunnels] section of ~/.subversion/config.  By default, only
   the "ssh" scheme is allowed.

The new-for-0.16 svn+ssh access model is much like CVS using the CVS_RSH access. It's all I need for now.

SubversionInstall (last edited 2008-07-09 06:21:56 by localhost)