Blame: Suppress ReferenceEquality warning for RevCommit instances
Reference comparison of the RevCommit objects is OK; BlameGenerator uses a single RevWalk which caches the RevCommits, so if a given commit is cached the RevWalk will always return the same instance. Factor the comparison out to a method, and suppress the warning with an explanatory comment. Change-Id: I5a148001dba7749ac15119aed388adb12b6f51ad Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
This commit is contained in:
parent
76b3781f4b
commit
215a2dcf0f
|
@ -218,7 +218,8 @@ protected void run() {
|
|||
dateWidth = Math.max(dateWidth, date(line).length());
|
||||
pathWidth = Math.max(pathWidth, path(line).length());
|
||||
}
|
||||
while (line + 1 < end && blame.getSourceCommit(line + 1) == c) {
|
||||
while (line + 1 < end
|
||||
&& sameCommit(blame.getSourceCommit(line + 1), c)) {
|
||||
line++;
|
||||
}
|
||||
maxSourceLine = Math.max(maxSourceLine, blame.getSourceLine(line));
|
||||
|
@ -257,13 +258,22 @@ protected void run() {
|
|||
blame.getResultContents().writeLine(outs, line);
|
||||
outs.flush();
|
||||
outw.print('\n');
|
||||
} while (++line < end && blame.getSourceCommit(line) == c);
|
||||
} while (++line < end
|
||||
&& sameCommit(blame.getSourceCommit(line), c));
|
||||
}
|
||||
} catch (NoWorkTreeException | IOException e) {
|
||||
throw die(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("ReferenceEquality")
|
||||
private static boolean sameCommit(RevCommit a, RevCommit b) {
|
||||
// Reference comparison is intentional; BlameGenerator uses a single
|
||||
// RevWalk which caches the RevCommit objects, and if a given commit
|
||||
// is cached the RevWalk returns the same instance.
|
||||
return a == b;
|
||||
}
|
||||
|
||||
private int uniqueAbbrevLen(ObjectReader reader, RevCommit commit)
|
||||
throws IOException {
|
||||
return reader.abbreviate(commit, abbrev).length();
|
||||
|
|
Loading…
Reference in New Issue