Page History
Wiki Markup |
---|
{iframe:src=http://update.sonarsource.org/plugins/scmactivity.html|width=700|height=250|frameborder=0}
Your browser does not support iframes.
{iframe} |
Compatibility Matrix
...
Warning | ||
---|---|---|
| ||
This plugin is deprecated since SonarQube 5.0 which has built-in support for SCM information and which relies on independent plugins to cover SCM providers. |
Description / Features
This plugin collects SCM blame information and displays the date of the commit and the commiter ID to the left of each line of code:
This plugin also enables the computation of:
- code coverage on new code
- developer metrics when the Developer Cockpit plugin is installed
Requirements
All SCM providers currently require the native executable to be installed on on the server where the SonarQube analysis will run. For example, for projects hosted on a Subversion repository and analysed on a Jenkins server, an svn executable must be available on on the Jenkins server (and its slaves if any).
Plugin | 1.21.3 | 1.4 | 1.5 | 1. | X6 | 1.7.1 | 1.8 | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
Subversion (1.6+ client) | |||||||||||
ClearCase (all versions) Requires SonarTfsAnnotate.exe to be |
| ||||||||||
Jazz RTC | |||||||||||
MKS Integrity | |||||||||||
Visual SourceSafe | |||||||||||
CM Synergy | |||||||||||
- supported
- tested by users
- not tested
- not implemented
Features
This plugin collects SCM information on each source file to display in the component viewer the last committer on lines.
Installation
- Install the plugin through the Update Center or download it into the SONARQUBE_HOME/extensions/plugins directory
- Restart the SonarQube server
Include Page | ||||
---|---|---|---|---|
|
Usage
Configuring the SCM Activity Plugin
...
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.
...
: SVN, Git, Mercurial and Team Foundation Server (TFS)
Information is automatically retrieved from the .git, .svn, $tf, etc. folders. Therefore, nothing has to be configured and no configuration will be taken into account.
In order for this to work, the sonar-project.properties
file needs to be located in a checked-out folder, but it does not have to be checked-in.
Alternatively, you can set the "sonar.projectBaseDir
" property to a checked-in folder (requires sonar-runner 2.4 at least), and have the sonar-project.properties
files located anywhere.
Configuring the SCM Activity Plugin: Others
At the project level, go to Configuration > Settings > SCM Activity
...
Set the SCM URL your project (see SCM URL Format).
- Specify the User and Password properties if needed. If the SCM URL property contains the user information (as with CVS), then these fields should be left blank.
- Launch a new quality analysis and the metrics will be fedcomputed.
SCM URL Property Key is = sonar.scm.url
Note | ||
---|---|---|
| ||
For the
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:
Deactivate the SCM Activity plugin:
sonar.scm.enabled = false
sonar.scm.enabled = true
Info |
---|
Note that a property should be added sooner or later to explicitly force this retrieval or not. See SONARPLUGINS-2359. |
Troubleshooting
Subversion "Server certificate verification failed: issuer is not trusted"
Add the following to .subversion/servers
:
...
CVS anonymous access not working "org.apache.maven.scm.ScmException: password is required."
Try to set setting an empty password for the repository in .cvspass
. For example:
...
I use Git and the annotated sources sometimes display a wrong/old author name
The plugin uses the 'git blame
' command to find out get the author of each line. Because a single user can commit with different multiple author namenames/emailemails, it is advised to have a .mailmap
file at the root of the repository. This file is used by 'git blame
' to find out determine the canonical name/email of each user.
...
I use Git and the annotated sources sometimes display "Not Committed Yet"
In case If you have set the parameter autocrlf
to "true
" or "input
", and the 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 SonarQube analysis.
Specific configuration for Jazz RTC
The number of threads used to speed-up the retrieval of authors by line (aka blame information) has to be set to '1' (sonar.scm.threadCount
property).
Additional configuration for Perforce
You Since version 1.6, you have to set an additional parameter property to define the Perforce client name while running your analysis: mavensonar.scm.perforce.clientspec.name
.
Example:
Code Block | ||
---|---|---|
| ||
sonar-runner -Dmaven.scm.perforce.clientspec.name=myPerforceClientName |
Change Log
Jira Issues | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Jira Issues | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Jira Issues | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Jira Issues | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|