
WHY WebSVN?

WebSVN offers a view onto your subversion repositories that's been designed
to reflect the Subversion methodology. You can view the log of any file or
directory and see a list of all the files changed, added or deleted in any
given revision. You can also view the differences between 2 versions of a
file so as to see exactly what was changed in a particular revision. 

WebSVN offers the following features: 

* Easy to use interface 
* Highly customisable templating system 
* Colourisation of file listings 
* Log message searching
* Fast browsing thanks to internal caching feature 
* Apache MultiViews support 

Since it's written using PHP, WebSVN is also very portable and easy to install.

INSTALLATION

Grab the source and stick it somewhere that your server can get to.  You
obviously need to have PHP installed and working.  Also note that WebSVN
won't currently work in safe mode, due to the need to call svnlook.

You'll also need diff (preferably the GNU version; for Windows users I'd
recommend the Cygwin version) and svnlook available.

Rename distconfig.inc as config.inc (found in the includes directory)and then
edit it as directed in the file itself.

If everything has gone well, you should be able to view your projects by
pointing your browser at the index.php file.

For those of you wishing to customise the look and feel a little, you should
read templates.txt, which explains the highly configurable template system.

Windows users - note that some of the features, offered by WebSVN, when
enabled, require the use of various external programs.  They can be downloaded
from these locations:

Diff/Sed/Gzip: http://www.cygwin.com/
Enscript:      http://people.ssh.com/mtr/genscript/

CACHING

In order to return results with a reasonable speed, WebSVN caches the results
of it's requests to svnlook.  Under normal usage this works correctly since
it's not generally possible to change a revision with subversion.

That said, one case that may cause confusion is if someone changes the log
message of a given revision.  WebSVN will have cached the previous log message
and won't know that there's a new one available.  There are various solutions
to this problem:

1) Turn off caching in the config file.  This will severely impede the
   perfomance of WebSVN.

2) Change the post-revprop-change hook so that is deletes the contents of the
   cache after any change to a revision property

3) Only allow the administrator to change revision properties.  He can then
   delete the cache by hand should this occur.

COLOURISATION

You can few files with syntax colouring if you have Enscript 1.6 or higher 
installed on your system.  You'll also need Sed.

Simply set the paths in the config file and then uncomment the line:

$config->useEnscript();

MULTIVIEWS

You may choose to configure access to your repository via Apache's MultiView
system. This will enable you to access a respositoy using a url such as:

http://servername/wsvn/repname/path/in/repository

To do this you must:

- Place wsvn.php where you want to.  Normally you place it such that it's
  accessible straight after the servername, as shown above.

- Configure the parent directory of wsvn.php to use MultiViews (see Apache
  docs).

- Change config.inc to include the line $config->useMultiViews();

- Change the paths at the beginning of wsvn.php

Now go to http://servername/wsvn/ and make sure that you get the index page.

The repname part of the URL is the name given to it in the config.inc file.
For this reason you may wish to avoid putting spaces in the name.

LICENCE

GNU Public licence.

 
