Browse Source

Merge "blame: Format commit and author only once per range"

stable-3.4
Shawn Pearce 11 years ago committed by Gerrit Code Review @ Eclipse.org
parent
commit
62bbde3393
  1. 36
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Blame.java

36
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Blame.java

@ -222,19 +222,29 @@ class Blame extends TextBuiltin {
String authorFmt = MessageFormat.format(" (%-{0}s %{1}s", //$NON-NLS-1$
valueOf(authorWidth), valueOf(dateWidth));
for (int line = begin; line < end; line++) {
outw.print(abbreviate(blame.getSourceCommit(line)));
if (showSourcePath)
outw.format(pathFmt, path(line));
if (showSourceLine)
outw.format(numFmt, valueOf(blame.getSourceLine(line) + 1));
if (!noAuthor)
outw.format(authorFmt, author(line), date(line));
outw.format(lineFmt, valueOf(line + 1));
outw.flush();
blame.getResultContents().writeLine(outs, line);
outs.flush();
outw.print('\n');
for (int line = begin; line < end;) {
RevCommit c = blame.getSourceCommit(line);
String commit = abbreviate(c);
String author = null;
String date = null;
if (!noAuthor) {
author = author(line);
date = date(line);
}
do {
outw.print(commit);
if (showSourcePath)
outw.format(pathFmt, path(line));
if (showSourceLine)
outw.format(numFmt, valueOf(blame.getSourceLine(line) + 1));
if (!noAuthor)
outw.format(authorFmt, author, date);
outw.format(lineFmt, valueOf(line + 1));
outw.flush();
blame.getResultContents().writeLine(outs, line);
outs.flush();
outw.print('\n');
} while (++line < end && blame.getSourceCommit(line) == c);
}
} finally {
generator.release();

Loading…
Cancel
Save