Skip to end of metadata
Go to start of metadata

Compatibility Matrix

All SCM providers currently require the native executable to be installed on the server where the Sonar analysis will run. For example, for projects hosted on a Subversion repository and analysed on a Jenkins server, svn executable must be available on the Jenkins server (and its slaves if any).

(tick) - supported

(star) - tested by users

(question) - not tested

(error) - not implemented

Features

This plugin collects SCM information on each source file to display in the source code viewer the last committer on lines.

Installation

  1. Install the SCM Activity plugin through the Update Center or download it into the SONAR_HOME/extensions/plugins directory
  2. Restart the Sonar server

Usage

Configuring the SCM Activity Plugin

  1. Set the SCM URL of your project (see SCM URL Format): sonar.scm.url properties. For Git, SVN and Mercurial, the SCM provider is automatically discovered, so what's defined in this property is not taken into account.

  2. At project level, go to Configuration > Settings > SCM Activity and specify User (sonar.scm.user.secured) and Password (sonar.scm.password.secured) if needed; if specified then developerConnection will be used, otherwise connection.
  3. Launch a new quality analysis and the metrics will be fed.

 

Security note for Sonar 3.4+

For the *.secured properties to be read during the project analysis, it is necessary to set the 'sonar.login' and 'sonar.password' properties to the credentials of a user that is:

  • System administrator
  • And project administrator on the project that is being analyzed
Example:
sonar-runner -Dsonar.login=admin -Dsonar.password=admin

 

Forcing the Retrieval of Blame Information

In some cases, it is necessary to retrieve blame information on files that have not been changed (for example when a user has been renamed). To force this retrieval, here are the steps to follow:

  1. Deactivate the SCM Activity plugin: sonar.scm.enabled = false
  2. Run a Sonar analysis on your project
  3. Reactivate the SCM Activity plugin: sonar.scm.enabled = true
  4. Run a Sonar analysis on your project

 

Note that a property should be added sooner or later to explicitly force this retrieval or not. See SONARPLUGINS-2359.

 

Known Issues and Limitations

Subversion "Server certificate verification failed: issuer is not trusted"

Add following to .subversion/servers:

CVS anonymous access not working "org.apache.maven.scm.ScmException: password is required."

Try to set empty password for repository in .cvspass. For example:

I use Git and the annotated sources sometimes display a wrong/old author name

The plugin uses 'git blame' command to find out the author of each line. Because a user can commit with different author name/email, it is advised to have a .mailmap file at the root of the repository. This file is used by 'git blame' to find out canonical name/email of each user.

See http://git-scm.com/docs/git-blame#_mapping_authors

I use Git and the annotated sources sometimes display "Not Committed Yet"

In case you have set the parameter autocrlf to "true" or "input" and source file was previously committed with Windows line endings then git blame will report each line as "Not Committed Yet" as an indication that the file will be normalized to Unix line endings in case you do a modification and a commit on the same file.

The simplest workaround is to always set autocrlf to "false" on the box doing the Sonar analysis.

Change Log

Version 1.5 (7 issues)
Type Key Summary Priority
Bug SONARPLUGINS-1984 When getting blame information fails, no other retrial is done during next Sonar analysis as long as the source is not updated Critical
Task SONARPLUGINS-2009 Metric "scm.hash" should be hidden Major
Bug SONARPLUGINS-1952 The mechanism used to determine what source files have been updated from one analysis to another is platform dependent Major
Improvement SONARPLUGINS-1937 The SCM Activity plugin should be activated by default Major
Improvement SONARPLUGINS-1936 The SCM Activity Plugin must not be executed when we're analyzing a past quality snapshot with help of 'sonar.projectDate' property Major
Improvement SONARPLUGINS-1876 Make the "sonar.scm.url" parameter optional when using Git and Subversion Major
Bug SONARPLUGINS-1983 Typos in the description of the SCM URL property Minor

 

Version 1.4 (15 issues)
Type Key Summary Priority
Improvement SONARPLUGINS-1896 Always run the SCM Activity plugin with or without local changes. Major
Improvement SONARPLUGINS-1872 Parallel execution of SCM commands Major
Task SONARPLUGINS-1871 Stop using the changelog/revision to determine if the blame information should be updated on a source file Major
Improvement SONARPLUGINS-1870 Optimisation of initialisation for project with a lot of changesets Major
Bug SONARPLUGINS-1766 Can't integrate SCM Activity into Jenkins with a non-Maven java build Major
Improvement SONARPLUGINS-1561 Improve loading of changelog on big projects Major
Improvement SONARPLUGINS-1122 Changelog extractor uses path to Sonar project configuration file Major
Bug SONARPLUGINS-1157 SCM Activity plugin fails detecting the revision with mercurial Major
Bug SONARPLUGINS-1308 SCM Activity Plugin doesn't work after having changed our SCM Major
Bug SONARPLUGINS-1283 CommandLineException: Missing/wrong number of arguments Major
Bug SONARPLUGINS-1291 Unable to retrieve TFS changelog Major
Improvement SONARPLUGINS-1095 Upgrade to Maven SCM 1.7 Major
Task SONARPLUGINS-1092 Use API from Maven SCM to validate URL instead of own implementation Major
Bug SONARPLUGINS-1094 Scm Activity no longer works for ClearCase Major
Bug SONARPLUGINS-1144 Allow blank password for scm user Minor

 

Version 1.3 (6 issues)
Type Key Summary Priority
Improvement SONARPLUGINS-899 Upgrade to Maven SCM 1.5 Major
Improvement SONARPLUGINS-1067 Support Mercurial Major
Improvement SONARPLUGINS-1085 The analysis must not fail on SCM blame errors Major
Improvement SONARPLUGINS-1083 Improve message when SCM URL is badly formed Major
Improvement SONARPLUGINS-1082 Server certificate verification failed Major
Bug SONARPLUGINS-1069 SCM Activity plugin sources documentation link points to invalid location Trivial