CA Agile Central VCS Connector for Subversion Installation & User Guide

Note: This documentation applies to the latest polling method version of the Subversion connector.

The Subversion to CA Agile Central Connector helps you show traceability of code changes to artifacts in CA Agile Central.

The Subversion to CA Agile Central connector comprises code that skims a centralized master Subversion repository for recent commits. It extracts information from the commit messages, and posts changeset / change information to a CA Agile Central SCMRepository, according to specifications in a configuration file. While it is possible to have the connector installed on only one computer for your company, you can also choose to install the connector on multiple computers depending on how your organization is structured and the number of repositories that need to be reflected in CA Agile Central.

When developers put FormattedIDs, for example US42, in their commit messages, the connector processes all commits for configured repositories and pushes information about those commits into changeset objects and change objects in CA Agile Central. If a valid FormattedID is found in a commit message, the changeset created by the connector is associated with that defect, story, or task in CA Agile Central.


"Fixed DE1987 by changing preamble paragraph 3"

If CA Agile Central defect DE1987 had a state of Open prior to the commit and run of the connector, then subsequent to the operation of the connector processing this particular changeset, the state of CA Agile Central defect DE1987 would display as Fixed. Please note this message is case-sensitive, fixed is not the same as Fixed. The yml file will need UpdateArtifactState value set to True to process a state change.

The commit message may contain references to more than one artifact. For example, this is known to work:

"Test commit msg with multiple artifacts Fixed DE9 Closed DE8"

A typical workflow would be for one of your team members to be assigned DE42 in CA Agile Central. When they make a code change and commit it. They would include text in the commit message like "Found an issue with line breaks - fixed DE42". When the connector runs again, it locates that commit message and links the information about the commit to CA Agile Central defect DE42.

This installation guide includes the following:

Supported Platforms

The connector supports running in a variety of platforms. This software is written in Ruby and has been tested and certified using Ruby 2.2.6. It will not work with any earlier version of Ruby. We expect the connector to work with subsequent stable versions of Ruby. If this software is for use on a Linux, Unix, or MacOSX system, it must be installed subsequent to installing the http client and rally_api gems.

The CA Agile Central connector for Subversion runs as a Ruby script on a machine inside your network.


  • Ruby 2.2.6 - This is the supported version.
    The connector may not be compatible with Ruby 2.3.x and 2.4.x, we have not certified this connector with those versions, only 2.2.6 is certified. You may want to investigate how to use the Ruby version manager software (rvm) that makes installation and use of specific versions of Ruby simpler.
  • Ruby Development Kit for Ruby 2.0 to 2.3 (** Windows only **)
    1. Download the DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe from here.
    2. Add path to the devkit’s bin directory to environment Path variable.
    3. cd to the Ruby DevKit root directory.
    4. Run command: ruby dk.rb init
    5. Run command: ruby dk.rb install
  • Choose a machine which will be used to run the connector
  • If the connector machine is a different machine than the Subversion server, note the Subversion server's address and name
  • Gather the paths to the centralized master repositories from which you will gather information
  • Select the CA Agile Central workspace into which the changeset/change information will be posted

Download the Connector

To download the connector, follow the steps here.

Distribution Contents

1715 May 23 13:01 LICENSE
18419 May 23 13:01 README
4811 May 23 13:02 User-Mapping-Strategies
170 May 23 15:43 configs
136 May 23 13:02 extension
170 May 23 13:02 gems
1897 May 23 13:02 git2ca_agile_central.rb
2115 May 23 13:02 install_gems.rb
102 May 23 13:02 lib
136 May 23 15:36 logs
374 May 23 13:02 plugin
43520 May 23 13:02 vcseif-1.6.0.gem 

Set Up CA Agile Central

Note: We strongly recommend creating the connector user with Workspace Administrator permissions. This will allow the connector user access to any new projects that may be added to the Workspace in the future (A user with Editor permisssions only will not automatically be added to new projects). If the Connector User does not have access to projects, changesets will be created in the SCM Repository only and will be orphaned (not attached to any artifacts).

Verify that your target WorkspaceConfiguration object has BuildandChangsetEnabled set to true.

Your CA Agile Central workspace administrator needs to enable this for your target workspace. If it is not enabled, the connector will work, but you will not be able to see any of the changeset/change information that is associated with your CA Agile Central work items (story, defect, task).

The workspace administrator must edit the workspace and do the following:
  1. Select the Setup icon .
  2. Select the Workspaces & Projects tab.
  3. On the Workspaces & Projects summary page, select your workspace.
  4. From the Actions drop-down, select Edit.
  5. On the workspace editor, select the checkbox labeled Enable Build and changeset.
  6. Select Save & Close.

Set Up the Connector

The Subversion connector is controlled by three different files:

Repository Configuration File

For each Subversion repository that you want to have reflected in CA Agile Central, you will need a connector configuration file which will be located in the configs subdirectory of the connector software you just installed.

This configuration file must be in YAML format. A connector configuration file contains information on how the connector operates in terms of how to interact with CA Agile Central and the identity and location of the Subversion repository. There is an example configuration file shipped with the product named configs/sample.yml. Make a copy of it and use it for your repository. We suggest naming your YAML configuration file similar to your repository name. For example, if your repository name is My-Svn-Repo, then name your YAML configuration file My-Svn-Repo.yml (for simplicity). Edit your new repository configuration file and modify the values to fit your environment.

Warnings about YAML syntax:

  • The tab character is not a valid YAML character.
  • Enclose special characters in quotes, such as if the password has exclamation marks ("!") or hashes ("#").
  • The comment character ("#") must be separated from any previous element by at least one space. For example, this string: ".../dir/dir2#this is a comment" is invalid.


The conventional practice is to name the CA Agile Central RepositoryName the same as your Subversion repository. The value you provide as the RepositoryName value is given to an SCMRepository instance in CA Agile Central. The CA Agile Central RepositoryName can be different from the Subversion repository name, if so desired. Within the CA Agile Central section of your YAML configuration file, the value for RepositoryName is the name of the CA Agile Central SCMRepository to which changeset/change items will be associated. If this SCMRepository container does not exist, the connector will create it in the user's target workspace.


There is an optional Lookback variable which can display on either or both of the CA Agile Central and Subversion sections. By default, the value for this parameter is assumed to be in minutes. You may use other units of time by specifying a suffix character of m (minutes), h (hours), or d (days).


Lookback: 90
Lookback: 120 m
Lookback: 8 h
Lookback: 10 d

If you do not explicitly provide a Lookback value, the connector uses a default value of one hour. If you do specify a Lookback value in one section, we highly recommend specifying the value for it in the other section. If the Lookback values are not identical in the two sections, there is the possibility that a changeset from Subversion would not be reflected in CA Agile Central.


Within the Subversion section of the configuration file, use the RepositoryBase to specify full pathname of the centralized master Subversion repository (not the working copy of the repository).

Example Repository Configuration File

    Server              :           #
    Protocol            : https                         #
    Username            : [email protected]               #
    Password            : 22333four                     # (this will be encoded after first use)
#   APIKey              : hgiotewhgeiwhgh325930503453490    # can be used in place of Username / Password entries
    Workspace           : VanillaBean                   #
    RepositoryName      : Balloon                       # If it doesn't exist, it'll be created
#   Proxy               :  # or an IP address:port
#   ProxyUser           : outbound                      #
#   ProxyPassword       : bvc-357%GNQ                   #
    Lookback            : 90                            # minutes by default, use h/d suffix for hours/days
    UpdateArtifactState : False                         #
    StateExtractorClass : BasicActionsAndArtifactsExtractor(message) # Only used if above is True
    Debug               : False                         # True for debug output
#   Server              :            # specified if repo is not local
    RepositoryBase      : /home/svn/repos/bigproject    # Complete pathname to the centralized-master Subversion repository
    Lookback            : 90                            # minutes (defaults to 120)
    MaxItems            : 100                           # Max number of items to process per run
#   RevURI              :{revnumber}?id={revnumber} # if running web access to repo
#   FileURI             :{filepath}?id={revnumber}  # if running web access
    Debug               : False                         # Set to True for additional debug output
    Preview             : False                         # When True, only show what would happen
    LogLevel            : Debug                         # Default value Info
#   PostBatchExtension  : MetricsPoster                 # For future use
    Author              : Passthru                      # The default
#   Author              : EmailAddressAsRallyUser
#   Author              : FileBasedUserNameLookup(user_map.txt,":")
#   Author              : RallyUserNameLookup(FirstName,LastName)
#   Author              : UserLookupChainGang(FirstName,LastName,user_map.txt,":")
#   Author              : UserNameDomainAugmentLookup(
  • URIs
    The RevURI and FileURI (in the Subversion section) are meant to be the root URI if you are using a web front end for your system. The URI will be used as a base for the link to the changesets and files from within the CA Agile Central Changeset. For example, if you have http://server:port/Subversion/rev/ as your root URI for your web access to Subversion (like Apache or ViewVC or WebSVN or VisualSVN), a link will be made in CA Agile Central for the changeset to http://server:port/Subversion/rev/12345 for changeset 12345. The strings {revnumber} and {filepath} will be substituted in when the connector builds the link stored in CA Agile Central.
    *** Note: The term root URI as discussed here is not synonymous with the RepositoryBase value. The repository base MUST be a valid filesystem path on the host for the Subversion repository. A root URI is configured specific to the web server you are running and how that has configured routes to resources.
  • Proxy
    The three Proxy items are commented out by using a # in front of the item. Within a YAML file, any line beginning with a # character is ignored and any content following a # character sequence is ignored (including the  # sequence).

User Mapping File

The file configs/user_map.txt determines how user names are translated between your Subversion system and your CA Agile Central subscription. If the user names are universally identical in both systems, then you can either comment out all Author sub-items underneath the Transforms section or you can set the value for the Author field in the Transforms section to Passthru. If there is a deterministic mapping that can transform a Subversion user name to a CA Agile Central user name, you will need to adjust the transformation value for Author to the appropriate classname. Consult the User-Mapping-Strategies text document (part of the installation) to determine which technique fits your needs.

Once you identify a suitable Author transformation technique, you'll need to modify the configuration file (in the configs subdirectory) to identify the Ruby class name that will implement that transformation. The Ruby class name must exist in a file of Ruby source code that is in a file in the plugin subdirectory.

Example user_map.txt file:

# Subversion repo username   CA Agile Central username
# ------------------------ : -----------------------
jpkole                     : [email protected]
linuxuser1                 : [email protected]
linuxuser2                 : [email protected]
David Beckham              : [email protected]
Yogi Berra                 : [email protected]

Repository Time File

Each time the connector finishes running, it updates a repository time file in the base installation directory, which has a name like My-Svn-Repo_time.file. This file contains the date of the last Subversion commit processed by the connector. Therefore, when the connector runs again, it can locate where (such as, at what time in the past) to begin processing commits made by the user.

On the first invocation of the connector there is no time file, so the connector will look back 72 hours in to the past for commits.

You can edit this file and set the time to a value you prefer. For instance, if you have 50,000 check-ins that were performed over the previous five years, you may not want all of that past history reflected in CA Agile Central. If so, edit the time file and enter a date of a more recent starting point.

The file contains only one line: a time stamp in GMT/UTC time. The general format of the file is YYYY-mm-dd HH:MM:SS Z (where the Z is for Zulu or GMT/UTC time). The following are the contents of a typical time file:

2013-05-17 18:49:22 Z

Mapping SCMRepositories to VCS Repositories

The VCS Connector was designed to operate where this is a one-to-one relationship between a CA Agile Central SCMRepository and a VCS repository (Git, GitHub, Subversion, Mercurial, and so on). When run, the VCS Connector creates a CA Agile Central SCMRepository item for the value specific in the connector config file if it does not already exist. This removes a small amount of administrative burden in that you do not have to create the CA Agile Central SCMRepository item before you run a configuration mentioning a new repository. A one-to-many mapping can create performance issues.

For each repository, there is a config file and a timefile. The timefile records the timestamp of the second-to-last commit for the repository. For example, you have an Apricot repository that had some flurry of commits last fall but nothing since and you also have a Banana repository that has had activity with the last couple of months. When commits for these two repositories get poured into a single CA Agile Central SCMRepository, it has the following effect. When processing the config for the Apricot repository, it is searching for recent Changeset records in CA Agile Central where recent is defined as the value in the timefile for Apricot. Since the last commit to that repository was last fall, there is going to be an excessive amount of information read-out of the single SCMRepository (because it is looking at all Changesets since last fall, not just the ones for Apricot).

For more information about creating or using SVN repositories, see Create a Centralized-Master-Repository.

Create a CA Agile Central API Key

A CA Agile Central API Key can be created to use to access your subscription data without using your username and password.

To use the API Key in a connector, edit the CA Agile Central section in the config .yml file and add an APIKey line. When the APIKey configuration entry is specified, omit the Username and Password from the CA Agile Central ;config section. If an APIKey entry is present, the username and password are not used and a warning will appear in the log file if they are included in the config file. This is true even if the APIKey entry value is invalid, blank, or nil. If your subscription administrator has configured your subscription to be SSO only, you no longer need to add the user associated with the given APIKey value to the whitelist of authorized users.

The connector now uses rally_api version 1.2.1. Please note that the APIKey specified must have full access, a read-only api key will not allow the connector to write to CA Agile Central.

For help creating a full-access API Key, see CA Agile Central Application Manager.

Install the Connector

Subversion Server Versus Use of SSH

The primary use case is for this connector to be run on the platform that the Subversion software and centralized master repository reside on. While it is possible to run this connector on a platform that is not the Subversion platform, that use case assumes the use of ssh and the proper setup of public and private key information. Setting up ssh and key files is beyond the scope of this document; consult the internet for information regarding ssh and PKI.

If you intend to use ssh when running the connector, it will be helpful to demonstrate that your key setup and permissions are correctly set independently of the connector. As the user who will be running the connector, in a shell running in a terminal window attempt the following:

$ ssh [email protected]_server_host  # substitute your actual user name and hostname...
$ ls -l

If this command runs correctly you'll get a long-format directory listing of the home directory for the connecter_user on the svn_server_host. If it does not run and provide that output, you'll need to troubleshoot common environmental error conditions such as non-availability of a private key file or improper directory/file permissions or target host setup for ssh connections. Only proceed towards running this connector when this command example succeeds for you.

Once you've demonstrated basic ssh usage using a key (so that you don't get challenged to provide a password) you can move on to establishing that you have a valid RepositoryBase value and that your Subversion installation allows the specific command necessary for the connector to run properly. In the following example, the RepositoryBase value is /opt/svn/repos/tech-project. Using ssh, attempt to run an svn log command on your Subversion host, substituting values appropriate for your environment.

$ repo='file:///opt/svn/repos/tech-project'
$ ssh -i $HOME/.ssh_keys/my_key_file_rsa  [email protected]_server_host svn log $repo

If this command succeeds, you can proceed with setup, configuration and running of the connector. Otherwise, you must identify and correct environmental factors (no key file, invalid user, etc.) before proceeding with attempting to operate the connector.

See Set Up SSH Access To SVNServer for more information.

Installer Versus Operator File System Permissions

As this connector is intended to run on an ongoing basis initiated by either cron or Windows Task Scheduler (WTS), it is important to consider the identity of the user who installs the connector versus the identity of the user when run through cron/WTS with regard to the permissioning and ACL of the directories and files in the connector installation. The runner of the connector must be able to read all files and must be able to write in the configs and logs subdirectories.

Before proceeding with the installation, be sure your environment meets all the prerequisites.

  1. Unzip the svn2ca_agile_central-(version)-master-(build_number).zip file into a suitable directory where you want the software installed. Note: This version of the connector does not contain a .exe file, but this is expected as the connector will be invoked with a ruby file now.
  2. Change the directory to the root of the connector installation:
    cd CAAgileCentralConnectorforHPALM-4.x.Y-master-z.
  3. Set environment variable GEM_COMMAND to gem executable located in Ruby installation directory. The location examples on Linux and Windows respectively are:
    • /myhome/.rvm/rubies/ruby-2.2.6/bin/gem
    • C:\Ruby226\bin\gem
  4. As a result of unpacking of the distribution archive the following files and folders are created:
    • field_handlers — A folder for custom field handers
    • svn_config.xml — Sample configuration file for user stores and defects
    • svn_config_test_workflow.xml — Sample configuration file for test cases
    • svn_config_run.xml — Sample configuration file for test runs
    • install_gems.rb — Ruby script to install the necessary gems for this connector
    • ca_agile_central2_svn_connector.rb — Executable to run the connector (located with the rallyeif-qc gem)
  5. Run the install_gems.rb Ruby script to get all associated gems installed. If you see output similar to You don't have write permissions ... then you will need to either consult with your system administrator to obtain the necessary permissions (typically done by using sudo or other similar software) or have the system administrator run the install_gems.rb command. To run the command, in a console/terminal window at the prompt, type the following:
    ruby install_gems.rb

Below is the sample output of install_ruby.rb command:

               ruby install_gems.rb 
               rubygems-update installed
               xml-simple installed
               httpclient installed
               multipart-post installed
               faraday installed
               mime-types installed
               rally_api installed
               rallyeif-wrk installed
               rally_hp_alm_api installed
               rallyeif-qc installed

Run the Connector

The following is information about running the connector.

Preview Mode

Within the Services section of your configuration file (configs/repo_one.yml, for example), is an entry for Preview. If not present, the default is False. When set to True, the connector does not modify any data in CA Agile Central, but rather ensures it can successfully connect to CA Agile Central with the credentials and information you have provided, as well as validating the use of the use of the svn command. Once you have determined that a connector run in Preview mode operates as expected, you can set the Preview value in your configuration to False.

Access to the svn Command

Your PATH environment variable must contain a file system path where the svn command can be found. See Linux, Unix, MacOSX, and Windows documentation on how to set environment variables for use within a Unix cron job (or Windows Task Scheduler entry). Use the Unix command which svn to determine if the svn command is in your PATH.

Note: You may run the connector on a box and have it access a remote host (through ssh), which has the Subversion repository. In this case, it is not necessary to have Subversion installed on the connector box. This, however, assumes you have enabled ssh access to the remote host, and the command ssh <remote host> which svn returns a path to the svn command.

Run as a Scheduled Task

You can use cron (Linux) or the Task Scheduler (Windows) (or any other job-task scheduling software) to run the connector periodically. Initially, CA Agile Central recommends the connector to be run every 15 minutes during normal business hours and less frequently during non-business hours.

Command Line Invocation

You can have numerous configuration files in the configs subdirectory and specify any number of them for invocation. For example:

ruby svn2_agile_central.rb apricot banana cherry dogwood

In the above example, the files apricot.yml, banana.yml, cherry.yml, and dogwood.yml must exist in the configs subdirectory. The connector only looks for configuration files in the configs subdirectory (which is under the installation base directory).

The Log Files

When the connector is run, two different log files are updated for each configuration file named:

  • logs/svn2ca_agile_central.log
    A global log file indicating the status of the connector. An entry is made in this log file to note the connector was invoked. For each configuration named at invocation, there will be an entry in this log file noting the return code from running the configuration. When the connector run has finished with all configurations, an entry is written to note the completion of the connector run.
  • logs/<ConfigFileName>.log
    For each configuration file named on the command line, this log file is updated with more detail about the activity that occurred during the run.

You can adjust the verbosity written to these log files by modifying the LogLevel value in the configuration file. Normally, the LogLevel would be set to Info. Should you encounter situations where the connector does not complete normally, you can adjust the LogLevel to Debug and run the connector to begin the troubleshooting process. These log files can be sent to CA Agile Central Support to expedite the investigation of a case.

Time Files

The connector writes a file in the base installation directory corresponding to the configuration name with the date of the last commit processed. The file is named <configuration-name>_time.file and has a time entry in the form YYYY-mm-dd HH:MM:SS Z, for UTC (or Zulu) time. When first run, there will not be a time file for the configuration and the connector defaults to searching for commits that occurred 72 hours prior to the run of the connector. You can override that behavior by creating and editing a time file for the configuration file you are about to process. By providing an entry in the format mentioned above, you can control that point from which commits are processed.

Note: The connector will skip processing commits for a repository until there are three or more commits to process. Once there are three or more commits, the skipped commits will be processed. This is a design decision due to performance issues in Agile Central when processing the commits. 

Extend the Connector

Within the extension subdirectory of the installation, there is an example Ruby class in the file named statex.rb. The class definition contained in that file is named BasicActionsAndArtifactsExtractor. This example class demonstrates the basic technique of examining a commit message and extracting CA Agile Central artifact identifiers and state transition target values. Using this class when the configuration file item UpdateArtifactState value is set to True results in the transition of the State (or ScheduleState in the case of UserStory) of the identified artifact to the state value mentioned in the commit message.

For example, if there is a CA Agile Central Defect (identified as DE1987) mentioned in the commit message with a new valid state value either immediately preceding or following the artifact identifier, then the connector will change the State of the identified artifact in CA Agile Central to that state. Example:

$  svn  commit  -m  "Fixed DE1987 by changing preamble paragraph 3"

If CA Agile Central defect DE1987 had a state of Open prior to the commit and run of the connector, then subsequent to the operation of the connector processing this particular changeset, the state of CA Agile Central defect DE1987 would display as Fixed. Please note this message is case-sensitive, "fixed" is not the same as "Fixed".

The commit message may contain references to more than one artifact. For example, this is known to work:

$  svn   commit  -m  "Test commit msg with multiple artifacts Fixed DE9 Closed DE8"  MyFile.rb

The extension subdirectory allows you to provide your own message processing to extract CA Agile Central artifact identifiers and state changes if the example provided does not fit your conventions. Your extension must be a class written in Ruby and must provide an instance method called service which takes the commit message as an argument and must return a Ruby Hash instance with entries keyed by a State name (Fixed, Completed, and so on) or nil with a Ruby Array as the associated value populated by CA Agile Central artifact identifiers (FormattedID).

File My-Svn-proj1_time.file:

2018-04-19 14:41:34 Z

File configs\My-Svn-proj1.yml:

#   -------------------   ------------------------------------ #
#   an onprem rally...
    Server              :                          #
    Protocol            : http                                 #
    Username            : [email protected]                    #
    Password            : encoded-d-d-d-d-d-d-d-d-d-d-d-=-     # encoded after first use
    Workspace           : My Sample Workspace            #
#   -------------------   ------------------------------------ #
    RepositoryName      : DogDogDog                            # name of Rally SCMRepository
#   Proxy               : server:port                          #
#   ProxyUser           : <proxy_user>                         # when using an authenticating proxy
#   ProxyPassword       : <proxy_password>                     # when using an authenticating proxy
    Lookback            : 90                                   # minutes
    UpdateArtifactState : True                                 #
    StateExtractorClass : BasicActionsAndArtifactsExtractor(message) # used if above is True
    Debug               : False                                #
#   Server              :                   # specify if repo is not local
    RepositoryBase      : C:/Users/jpkole/vcs-svn/My-Svn-proj1 # Pathname to the centralized master Subversion repository
    Lookback            : 90                                   # minutes
    MaxItems            : 100                                  # maximum items to process in a run
#   RevURI              : http://svn/svnurial/bigproject/rev/{revnumber}             # if running web access to repo
#   FileURI             : http://svn/svnurial/bigproject/file/{revnumber}/{filepath} # if running web access
    Preview             : false                                # when True, show what would happen
    LogLevel            : Debug                                # default value is Info
#   PostBatchExtension  : MetricsPoster                        # for future use
Author              : FileBasedUserNameLookup(user_map.txt,":")
#   Author              : Passthru                             # the default
#   Author              : EmailAddressAsRallyUser
#   Author              : RallyUserNameLookup(FirstName,LastName)
#   Author              : UserLookupChainGang(FirstName,LastName,user_map.txt,":")
#   Author              : UserNameDomainAugmentLookup(

Installation For Linux

The Subversion (SVN) to CA Agile Central connector shows traceability of code changes to artifacts in CA Agile Central. If SVN is installed, you can use it to check files, make changes, and check them back in Linux.

Using this installation guide, you will be able to run SVN in Linux as well as set up SSH.

Steps to install the Linux SVN connector and SSH:
  1. Set up SSH access to SvnServer from your personal computer. Run these steps on the same machine where SVN is installed.
    1. Generate the SSH information to access to SvnServer:
      $ ssh-keygen -N "" -f ~/.ssh/id_rsa
      Generating public/private rsa key pair.
      /Users/jpkole/.ssh/id_rsa already exists.
      Overwrite (y/n)? y
      Your identification has been saved in /Users/jpkole/.ssh/id_rsa.
      Your public key has been saved in /Users/jpkole/.ssh/
      The key fingerprint is:
      bb:40:28:be:54:1f:21:77:01:e5:fa:60:f8:a4:71:11 [email protected]
      The key's randomart image is:
    2. Copy the generated key to SVNServer:
      $ scp ~/.ssh/
      [email protected]'s password:
      $ ssh 'cat ./.ssh/ >> ./.ssh/authorized_keys'
      [email protected]'s password:
    3. Test your SSH set up to make sure theSvnServer can be reached:
      $ ssh ls -l
      total 16
      -rw-r--r-- 1 jpkole jpkole 8445 May 30 11:22 examples.desktop
      -rw------- 1 jpkole jpkole 410 May 30 11:32 x
  2. Create a centralized-master-repository.The centralized-master-repository is the place your team will store all commitments and code changes. The path for code changes to the SVN connector will pull from the centralized-master-repository when it runs. For example:
    • Interface for SvnServer:
    • Powered by WebSVN 2.3.3 and Subversion 1.7.5 ✓ XHTML & CSS
    • Existing subversion repository names on SvnServer and their corresponding web addresses:
      • myrepo ---
      • joe_repo ---
    • On the remote SvnServer filesystem, the subversion repositories live at: /var/subversion/*

    To create the centralized-master-repository:
    1. Log in to the remote SVNServer:
      $ ssh [email protected]
      [email protected]'s password:
    2. On the remote SvnServer, determine which version of SVN is currently installed:
      # svn --version
      Example: svn, version 1.7.5 compiled Jun 22 2013, 03:54:07
    3. The remote SVNServer maintains a list of valid SVN users, this is separate from Ubuntu's list of users which are allowed to log in to the SVNServer. The SVN username credentials are stored on SVNServer in the file /etc/apache2/svn.passwd. To add a new SVN user, enter this command as root on the SVNServer:
      # htpasswd -m /etc/apache2/svn.passwd jpkole
      New password:
      Re-type new password
    4. Add the same username as a Ubuntu user on SVNServer, and start the SSH setup process:
      # adduser jpkole
      # mkdir -p ~jpkole/.ssh
      # chmod 700 ~jpkole/.ssh
      # chown jpkole ~jpkole/.ssh
    5. Create a centralized-master-repository in SVN:
      # su www-data
      $ bash - l
      $ svnadmin create /var/subversion/Demo-centralized-master-repo
    6. Build a temporary directory with a source file which will be used to synchronize the centralized-master-repository:
      $ mkdir /tmp/tmp-proj
      $ echo "# Our first source file" > /tmp/tmp-proj/hw.rb
    7. Synchronize the new centralized-master-repository with the temporary project directory:
      $ svn import /tmp/tmp-proj file:///var/subversion/Demo-centralized-master-repo -m "JPs master svn repo"
      Adding /tmp/tmp-proj/hw.rb
      Committed revision 1.
    8. To exit the server, use the following commands:
      exit # from bash -l
      exit # from su www-data
      exit # from SvnServer as root
  3. Check a copy of the repository and make changes accordingly.
    Note: You will be prompted for a password if this is your first time committing changes.
    1. Check out a version of the centralized-master-repository from SVNServer into a working-copy-repository (directory) on the machine that SVN is installed:
      $ cd ~
      $ svn checkout Demo-working-copy-repo
      A Demo-working-copy-repo/hw.rb
      Checked out revision 1.
    2. Make a source change in the local working-copy-repository:
      $ echo puts '"Hello world - 1st change!"' >> Demo-working-copy-repo/hw.rb
    3. Commit your changes to the centralized-master-repository on SVNServer:
      $ svn commit -m "DE421 Fixed - change #1" Demo-working-copy-repo
      Authentication realm: <> Subversion Repository
      Password for "jpkole":
      Sending Demo-repo-working-copy/hw.rb
      Transmitting file data .
      Committed revision 2.
    4. To test, make another change and commit it:
      $ echo puts '"Hello world - 2nd change!"' >> Demo-working-copy-repo/hw.rb
      $ svn commit -m "DE421 Fixed - change #2" Demo-working-copy-repo
      Sending Demo-repo-working-copy/hw.rb
      Transmitting file data .
      Committed revision 3.
    5. Check that the changes are reflected on SVNServer in the centralized-master-repository:
      $ svn log
      r3 | jpkole | 2013-07-25 14:37:04 -0600 (Thu, 25 Jul 2013) | 1 line
      DE421 Fixed - change #2
      r2 | jpkole | 2013-07-25 14:34:35 -0600 (Thu, 25 Jul 2013) | 1 line
      DE421 Fixed - change #1
      r1 | www-data | 2013-07-25 13:55:58 -0600 (Thu, 25 Jul 2013) | 1 line
      JPs master svn repository


This section contains troubleshooting information.

See Log Files for Messages

When the connector runs, it generates two log files:

  • log/svn2ca_agile_central.log
    A global log file indicating the status of the connector.
  • logs/<config-file-name>.log
    For each configuration file given on the command line, this will be the log file containing information about any issues with that configuration file.

The RepositoryName is Case Sensitive

The configuration file contains a line like RepositoryName: Chien1, which is the name of the SCMRepository object in CA Agile Central. This name is case-sensitive. Assuming the name was mistakenly specified as chien1, you may see a log file error like:

 INFO : RallyVCSConnection.validate - SCMRepository: chien1
DEBUG : RallyVCSConnection.getSCMRepository - No SCMRepository named |chien1| in Workspace: |WS1|
 INFO : RallyVCSConnection.createSCMRepository -
        Creating SCMRepository 'chien1' (Subversion) in the 'WS1' workspace...
ERROR : UnrecoverableException (/Users/...../exceptions.rb:42 line in `initialize') -
        Unable to create SCMRepository: 
        Error on request - -
                {:errors=> ["Validation error: SCMRepository.Name:
                There is already a SCMRepository with the name 'chien1' in this Workspace"], ... ]}

Ruby Considerations

This software is written in Ruby and must be executed with a supported version of the Ruby interpreter. As of version 1.6.0 the supported Ruby version is 2.2.6. If you are running the connector on a Windows platform, you must have installed the appropriate Ruby DevKit. See Prerequisites for more information.

No Valid Artifacts Mentioned

Seen when connector tries to add a changeset to a Project where the Connector User does not have permissions.

DEBUG : RallyVCSConnection.extract_artifact_references - No valid artifacts were mentioned in message
DEBUG : RallyVCSConnection._createInternal - Created Changeset: OID: 4935999999  Revision: 14d0f533084c700f Timestamp:|2016-01-06T14:58:01.000Z| (not associated with any Artifacts)

Get Help

If you have any questions, issues, or suggestions, select the Contact Support link at the bottom of any CA Agile Central page.

Revision History

  • 1.6.0-master --- 25-May-2018
    • Enhancements:
      • Unified distribution, requires use of Ruby 2.2.6 for TLS V1.2 support.
  • 1.5.3-master --- 12-Dec-2017
    • Enhancements:
      • Sync all vcs-eif connectors.
  • 1.5.1-master --- 12-Sept-2017
    • Enhancements:
      • Added Message to fields eligible for Transform.
      • Certified for use with Ruby 2.2.6.
  • 1.4.3-master --- 24-Oct-2016
    • Enhancements:
      • Updated the logic to allow for processing after 1 commit.
  • 1.4.1-master --- 17-Oct-2016
    • Fixes:
      • Addressed uncaught exception when processing an empty repository.
  • 1.4.0 - master-1046 --- 16-Nov-2015
    • Enhancements:
      • Brand redesign.

  • 1.3.2 - master-1043 --- 01-Aug-2015
    • Enhancements:
      • Added support for use of APIKey entry and revised documentation to encourage use of this in preference to use of still supported ApiKey.

  • 1.3.1 - master-1040 --- 19-Jun-2015
    • Enhancements:
      • Added support for downcasing any CA Agile Central username value, inverted sequence of retrieval from CA Agile Central and target VCS system, and upped dependency on rally_api to 1.2.1.

  • 1.3.0-master-1038 --- 29-Apr-2015
    • Fixes:
      • Handle commit messages with multi-byte characters whose length exceeds the CA Agile Central Changeset Message field length limit of 4000 bytes.
    • Enhancements:
      • Updated dependency on rally_api to 1.2.0

  • 1.2.9-cib1037 --- 10-Mar-2015
    • Fixes:
      • Refined handling of commit messages in excess of 4000 characters to account for JSON encoding expansion.

  • 1.2.8-cib1036 --- 01-Mar-2015
    • Enhancements:
      • Improved the ability to identify artifact identifiers in commit messages surrounded by bracketing characters.

  • 1.2.6-cib1035 --- 26-Jan-2015
    • Enhancements:
      • Updated rally_vcs_connection.rb configureExtensionEnvironment and statex.rb to accommodate custom artifact prefixes (such as 'BUG' for Defect).
      • Updated dependency for rally_api to version 1.1.2.

  • 1.2.5-cib1033 --- 15-Oct-2014
    • Enhancements:
      • Updated to use CA Agile Central Web Services API v2.0 and the updated rally_api gem.

  • 1.2.4-cib1031 --- 16-Sep-2014
    • Enhancements/Fixes:
      • Added support for using API Key in lieu of username and password in the CA Agile Central portion of the configuration file.
      • Updated to rally_api toolkit version 1.0.1.

  • 1.2.3-cib1030 --- 15-Sep-2014
    • Enhancements/Fixes:
      • Fixed DE21993 - to meet CA Agile Central's commit message field limitation of 4000 characters, if a commit message exceeds the character limit, characters over the limit are truncated. Upon truncation, the commit message is appended with an annotation of the truncation and a warning message displays in the log file.


需要更多帮助? CA Agile Central 社区为您提供一站式自助和支持。要将反馈或支持请求提交到 CA Agile Central 支持、获取解答并与其他用户协作,请加入我们的 CA Agile Central 社区