Subversion Integration

Top  Previous  Next

This section describes Code Collaborator integration with Subversion:

The Code Collaborator server can pull committed revisions directly from your Subversion server for review, without users needing to install any client programs.

The GUI Client can upload local changes to files in a Working Copy, or upload the files in Revisions.  The GUI Client can also upload arbitrary Subversion diffs, or the difference between two Revisions, branches / tags, or dates.  

The Command Line Client can upload local changes to files in a Working Copy, or upload the files in committed Revisions.  The  Command Line Client can also upload arbitrary Subversion diffs.

Eclipse Plug-in

The Eclipse Plug-in integrates with the Subclipse plug-in so you can upload locally modified files or upload  the files in Revisions.

Subversion Server Hooks

Subversion server-side hooks can ensure code is reviewed or automatically create reviews.

Supported Versions

Our Command Line Client and GUI Client integrations use your own Subversion command-line client (svn) to communicate with the server.  We support these versions:

v1.6.x
v1.5.x
v1.4.x
v1.3.2 and earlier, only ccollab addsvndiffs is supported

Our Eclipse Plug-in integrates with the Subclipse Eclipse plug-in.  We support these versions of Subclipse:

v1.6.x
v1.4.x
v1.2.x

Because we use Subversion client applications already present on your computer, we support all protocols, authentications, proxies, and other client configuration options you are currently using.

Support for Directory-level New/Delete/Copy/Move

Code Collaborator partially supports Subversion's concept of directories (not just files) being altered.

All files underneath the directories in question will be scanned, uploaded and represented properly in the GUI.  The directories themselves will not be shown in any GUI, or even in the file list confirmation screen presented by the command-line client.

This all works correctly even if for example you move a parent directory and alter/add/delete a file within that directory.  You'll get the correct content for the file but the directory itself will not be listed in the review.

Support for svn+ssh

The Code Collaborator clients support running Subversion over SSH (the svn+ssh:// protocol).  On some systems, especially those under Unix, Mac OS X or under Cygwin/Windows, this will be probably work correctly out of the box.

If a banner is displayed by your SSH connection, this will interfere with the client being able to correctly parse Subversion output.  You should be able to suppress SSH banner output by adding the "-q" option to your SSH executable, i.e.:

 svn_ssh = ssh -q

 

or by creating a local SSH configuration file and adding the line:

 LogLevel QUIET

 

For some Windows installations, especially with TortoiseSVN, you might have to configure Subversion to default to your SSH client.  To do this, go to APPDATA\Subversion and edit the config file (here APPDATA refers to your Profile directory under Application Data, so e.g. C:\Documents and Settings\username\Application Data).  Find the line under the [tunnels] section that starts with "ssh=".  Set this to use your SSH client, which if you use TortoiseSVN will look something like:

 ssh = "C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe" -l <your username>

 

Note that those double-slashes are important!

Changes to Properties

Code Collaborator doesn't specifically support reviews of the changes to Subversion properties.

Support for Symlinks

Code Collaborator partially supports Subversion's ability to version Symlinks.  A Symlink contained in a committed Revision uploaded to a Review will be displayed correctly.  However a Symlink uploaded to a Review before commit will have incorrect content (the Symlink will be traversed).

Support for Path-Based Authorization

If your Subversion server has Path-Based Authorization enabled and you do not have access to the root URL of your repository, then Code Collaborator only supports the GUI Client "Add Subversion Diffs..." button and the Command Line Client addsvndiffs command.