Skip to main content
System StatusContact Support
VersionOne Community

Setup SVN Poller

Overview

If your repository is in Subversion, you will need to setup the Continuum Repo Poller to pull changes in from your Subversion server. This requires that the Subversion Apache WebDAV extension to be running (this is typical). See http://svnbook.red-bean.com/en/1.7/s...dav.basic.html for more information on SVN WebDAV.

Here's the data that you'll need to setup the Repo Poller for Subversion: http address, user id and password with read permissions and a repository name.

Now you must get to the command line on the Continuum linux machine as the Continuum user account. Edit the file /etc/continuum/flow.yaml with an editor (vi, nano, etc.).

This file is in the YAML format. For more information on the YAML specification see here: http://www.yaml.org/spec/1.2/spec.html

Under the repo_poller_servers: section, add the Subversion server http address, user and password. This server can be named just about anything meaningful (represented by "acme_svn" in the example).

NOTE: The address needs to be in the http(s) format and should not contain the repository name in the path portion of the url. If Subversion is served using a prefix path, than that should be included, but not include the repo name.

Example:

repo_poller_servers:
    acme_svn:
        address: http://svn.internal.acme.com
        user: svnuser
        password: svnpassword

Notice the indentation. The name of the server must be indented below servers and address, user and password must be indented below the server. This is standard YAML and is usually either 2, 3 or 4 spaces.

Next thing to do is define the repository on that server under the repo_poller_repos:. Use the following example. The first line under the initial section header is the name of the Subversion repository on the server. The poll setting turns the poller on and off for this repository. The server_name is the name of the server setup in the previous section. Type must equal svn_webdav. There will be other types for polling git, etc. in the future. Lastly, the project setting should match the VersionOne Continuum Project setup in the first part of this tutorial.

Example:

repo_poller_repos:
    petclinic:
        poll: true
        server_name: acme_svn
        type: svn_webdav
        project: petclinic

Save and exit the flow.yaml file.

Last thing to do is to turn on the repo poller. This service is not enabled by default. Edit the /etc/continuum/continuum.conf file. Uncomment the following line by removing the # and space following the #.

# service.flow ctm-repopoller

Should become...

service.flow ctm-repopoller

And start the service by running the following command. This will only start services that are not currently running.

ctm-start-services

The repo poller will start up, read the flow.yaml file and immediately attempt to connect to the repository and determine the last change id (aka revision number). The poller will store this number so that next time it polls the repository it will only retrieve the commit logs of revision numbers higher than the last one found.

The repo poller will check for new changes every 15 seconds. This will be configurable in a future release.

To determine initially if the repo poller is successfully connecting to the repository, view the logfile /var/continuum/log/ctm-repopoller.log.

A successful connection to the Subversion repository will look something like this:

2014-12-03 10:19:00,138 - cskrepopoller.cskrepopoller - INFO :: Initial attempt to connect to svn repo petclinic

2014-12-03 10:19:00,360 - cskrepopoller.cskrepopoller - INFO :: Svn repo petclinic last change id is 25, saving change id for next time

A failure to connect to the Subversion server may have the following in the log (check address, protocol, etc.):

Connection error attemtping to communicate with SVN server. Check http or https, server address and port
HTTPConnectionPool(host='54.84.72.197', port=80): Max retries exceeded with url: /svn/petclinic (Caused by : [Errno 60] Operation timed out)

or

HTTP error, connection established but the SVN server responded with an http error code. Possibly wrong builder or build number
404 Client Error: Not Found

Authorization issue (user id or password):

HTTP error, connection established but the SVN server responded with an http error code. Possibly wrong builder or build number
401 Client Error: Authorization Required

Wrong repository name:

HTTP error, connection established but the SVN server responded with an http error code. Possibly wrong builder or build number
500 Server Error: Internal Server Error

Test the SVN Poller

Now submit a change to your SVN repository. This simply can be a change to a file and commit. Now in the Continuum app in the menu across the top select projects. Click on your new project. Whereas the Manage Projects page is used for setting up and configuring projects in Continuum, this page is more of an informational page.

Select the Manifest tab on the left. Expand the Changes block, you should see one change submitted which will match the one pushed.

What Happened?

When the SVN poller found the new change, the Json payload was converted into a normalized Change record in Continuum. This change can now be tracked throughout its lifecycle.

Continue

Refer to Associating Changes with Work Items in Continuum to continue on with the tutorial once the Stash changes are viewable in Continuum.

  • Was this article helpful?