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());
|
dateWidth = Math.max(dateWidth, date(line).length());
|
||||||
pathWidth = Math.max(pathWidth, path(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++;
|
line++;
|
||||||
}
|
}
|
||||||
maxSourceLine = Math.max(maxSourceLine, blame.getSourceLine(line));
|
maxSourceLine = Math.max(maxSourceLine, blame.getSourceLine(line));
|
||||||
|
@ -257,13 +258,22 @@ protected void run() {
|
||||||
blame.getResultContents().writeLine(outs, line);
|
blame.getResultContents().writeLine(outs, line);
|
||||||
outs.flush();
|
outs.flush();
|
||||||
outw.print('\n');
|
outw.print('\n');
|
||||||
} while (++line < end && blame.getSourceCommit(line) == c);
|
} while (++line < end
|
||||||
|
&& sameCommit(blame.getSourceCommit(line), c));
|
||||||
}
|
}
|
||||||
} catch (NoWorkTreeException | IOException e) {
|
} catch (NoWorkTreeException | IOException e) {
|
||||||
throw die(e.getMessage(), 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)
|
private int uniqueAbbrevLen(ObjectReader reader, RevCommit commit)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
return reader.abbreviate(commit, abbrev).length();
|
return reader.abbreviate(commit, abbrev).length();
|
||||||
|
|
Loading…
Reference in New Issue