Documentation for Crucible 3.0.x. Documentation for other versions is available too.

Subversion (SVN) allows users to store arbitrary name/value pairs associated with files and directories, called SVN properties. These properties can be used by users for storing metadata and are also used by Subversion (e.g. for storing where code is branched from)

These name/value pairs can only be changed as part of a changeset / 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 is enabled by default, and affects the following functionality:

  • 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, explicitly adding a particular file revision to a review is still permitted, regardless of whether it is a textual change or metadata-only change.)

The prime motivation behind the 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 - e.g. 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.

Disabling this functionality can be done by starting up Crucible with the following system property:
-Dcrucible.detect.metadata.revision.changes=false

 

  • No labels