Subversion (SVN) allows you to store arbitrary name/value pairs, called 'SVN properties', in association with files and directories. You can use these properties to store metadata, and Subversion also uses them, for example to store where code is branched from.
These name/value pairs can only be changed as part of a changeset or commit in Subversion. As such, you will have changesets with purely changes to SVN properties, or changesets with a mix of textual changes and changes to SVN properties.
Crucible 2.6 introduced review creation without metadata to prevent SVN properties from being included in reviews. This functionality was on by default.
For Crucible 3.0 and later, this functionality is disabled by default, and affects the following actions:
- Creating a review — The Create Review link is disabled in the activity stream, dashboard and changeset page for any changeset where all the file revisions only differ by SVN properties.
- Adding content to a review — SVN property-only changesets cannot be added to the review from the 'Add Content' dialog. Changesets with a mix of SVN property changes and textual changes can be added to the review, however only the file revisions with textual changes are added. File revisions with both textual changes and SVN property changes are always added.
Note that you can explicitly add a particular file revision to a review regardless of whether it is a textual change or metadata-only change.
The prime motivation behind metadata checking is to prevent the creation of reviews with a large number of files which have no effective content changes. Sometimes this sort of problem is seen when there is some wholesale SVN property change, for example setting the line endings on all files (svn:eol-style
). In that respect, this is a performance setting as it avoids the creation of large reviews. The properties themselves are still stored and managed in Fisheye. There is no major performance impact on including properties in reviews.
Enabling this functionality can be done by starting up Crucible with the following system property:
-Dcrucible.detect.metadata.revision.changes=true
Crucible 3.0+ Changes
In Crucible 3.0 and later the default value of this setting was changed from true
to false
. Due to the phased nature of Fisheye indexing, changesets are available for review much earlier in their overall processing. In particular changesets are available for review prior to having their line count and diff information processed. In this state all changes look somewhat like metadata only changes. Reviews created in this state with metadata detection enabled will cause the changes to be excluded from the review.