Blame calculations
Blames are the annotations available when viewing source files or diffs (in both Fisheye and Crucible) that allow you to determine who last modified a line of code and in which revision:
Blame calculation
Fisheye and Crucible calculate blames from the internal repository cache during indexing time. On rare occasions that may not be possible. In such cases Fisheye and Crucible have a mechanism to retrieve blame data directly from the repository, either during indexing time, or when requested by browsing source files and diffs. However, as contacting the repository can be an expensive operation and may noticeably affect indexing time and/or responsiveness, this mechanism is off by default for both cases since 3.10. In order to minimize the cost of retrieving blame data from the repository since version 4.6 Fisheye offers an in-memory cache.
Here are the system properties controlling blame calculations; the default values should be appropriate for most cases:
システム プロパティ | 説明 | Available since | 既定値 |
---|---|---|---|
fisheye.blame.calc.enable | Controls whether blames are calculated during indexing. Note that blame calculation during indexing is disabled if the Store Diff Info setting is disabled. See Store diff info. | true | |
fisheye.blame.scm.fallback.enable | Controls whether blame data is retrieved from the SCM during indexing (when blame couldn't be based on ancestors). fisheye.enable.request.blame.calculation
| 3.10.0 | false |
fisheye.enable.request.blame.calculation | Controls whether for all missing blames (when blame couldn't be calculated or retrieved during indexing) Fisheye and Crucible will retrieve blames from the repository. This happens during the web request - when users request blame data when viewing the file or diff. | 3.9.2 | true |
fisheye.blame.scm.fallback.cache.timeout.in.seconds | Blame scm fallback might be slow, so Fisheye offers caching blame entries. This is an in-memory cache. | 4.6 | 2日 |
fisheye.blame.scm.fallback.cache.size | Number of file revisions for which blame is stored. Set to 0 to disable caching. | 4.6 | 1000 |
Missing blame
When blame data is not available, the Author and Revision columns display "n/a" like this:
Blames may be not available:
- When indexing of a particular revision has not yet completed. This is a temporary state and blames should appear when indexing has finished.
- When the blame calculation failed during indexing and the
fisheye.enable.request.blame.calculation
is set to false (the default value). - If the repository configuration property Store Diff Info setting is disabled. See Store diff info.
- In patch files uploaded to the review. See Creating patch files for pre-commit reviews.