Integration with Bug Tracking Tools

Users of bug tracking systems can associate the changes they make in the repository resources with a specific ID in their bug tracking system. When the user enters a commit message, the bug ID is added to this message. The format and the location of the ID in the commit message are configured with SVN properties.

To make the integration possible Syncro SVN Client needs some data about the bug tracking tool used in the project. You can configure this using the following SVN properties which must be set on the folder containing resources associated with the bug tracking system. Usually they are set recursively on the root folder of the working copy.

bugtraq:message

A string property. If it is set the Commit dialog will display a text field for entering the bug ID. It must contain the string %BUGID%, which is replaced with the bug number on commit.

bugtraq:label

A string property that sets the label for the text field configured with the bugtraq:message property.

bugtraq:url

A string property that is the URL pointing to the bug tracking tool. The URL string should contain the substring "%BUGID%" which Syncro SVN Client replaces with the issue number. That way the resulting URL will point directly to the correct issue.

bugtraq:warnifnoissue

A boolean property with the values "true"/"yes" or "false"/"no". If set to "true", then Syncro SVN Client will warn you if the bug ID text field is left empty. The warning will not block the commit, only give you a chance to enter an issue number.

bugtraq:number

A boolean property with the value "true" or "false". If this property is set to "false", then any character can be entered in the bug ID text field. Any other value or if the property is missing then only numbers are allowed as the bug ID.

bugtraq:append

A boolean property. If set to "false", then the bug ID is inserted at the beginning of the commit message. If "yes" or not set, then it's appended to the commit message.

bugtraq:logregex

This property contains one or two regular expressions, separated by a newline. If only one expression is set, then the bug ID's must be matched in the groups of the regexp string. Example:

[Ii]ssue #?(\d+)

If two expressions are set, then the first expression is used to find a string which relates to a bug ID but may contain more than just the bug ID (e.g. "Issue #123" or "resolves issue 123"). The second expression is then used to extract the bug ID from the string extracted with the first expression. An example: if you want to catch every pattern "issue #XXX" and "issue #890, #789" inside a log message you could use the following regexp strings:

[Ii]ssue #?(\d+)(,? ?#?(\d+))+
(\d+)

The data configured with these SVN properties is stored on the repository when a revision is committed. A bug tracking system or a statistics tools can retrieve from the SVN server the revisions that affected a bug and present the commits related to that bug to the user of the bug tracking system.

If the bugtraq:url property was filled in with the URL of the bug tracking system and this URL includes the %BUGID% substring as specified above in the description of the bugtraq:url property then the History view presents the bug ID as a hyperlink in the commit message. A click on such a hyperlink in the commit message of a revision opens a Web browser at the page corresponding to the bug affected by that commit.