Merge changes I53f71dc0,I3a899a3a,I3e8bd245,Ie7c9db83,If396326e,I6f4cf8da,I3bf96dd0,I3a2a43a1,I292fe88c,Ia1cf40cf

* changes:
  git-servlet: Fix comparing uploadFactory with the wrong DISABLED instance
  Prefer static inner classes
  Override equals for SwingLane since super class PlotLane defines it
  Make sure a Stream is closed upon errors in IpLogGenerator
  Make constant static in RebuildCommitGraph
  Make inner classes static in http code
  Cache filemode in GitIndex 
  Remove unused parent field in PlotLane
  Removed unused repo field in WorkDirCheckout
  Extend DiffFormatter API to simplify styling
This commit is contained in:
Shawn Pearce 2010-06-14 19:59:48 -04:00 committed by Code Review
commit 86fcdc53ad
13 changed files with 133 additions and 54 deletions

View File

@ -185,7 +185,7 @@ public void init(final ServletConfig config) throws ServletException {
initialized = true;
if (uploadPackFactory != ReceivePackFactory.DISABLED) {
if (uploadPackFactory != UploadPackFactory.DISABLED) {
serve("*/git-upload-pack")//
.with(new UploadPackServlet(uploadPackFactory));
}

View File

@ -112,7 +112,7 @@ public void testCreate_Enabled() throws ServiceNotEnabledException,
service.access(new R("bob", "1.2.3.4"), db);
}
private final class R extends HttpServletRequestWrapper {
private static final class R extends HttpServletRequestWrapper {
private final String user;
private final String host;

View File

@ -174,7 +174,7 @@ public void testCreate_Enabled() throws ServiceNotEnabledException,
assertNotNull("have ReceivePack", rp);
}
private final class R extends HttpServletRequestWrapper {
private static final class R extends HttpServletRequestWrapper {
private final String user;
private final String host;

View File

@ -136,7 +136,7 @@ public void testCreate_Enabled() throws ServiceNotEnabledException,
assertSame(db, up.getRepository());
}
private final class R extends HttpServletRequestWrapper {
private static final class R extends HttpServletRequestWrapper {
private final String user;
private final String host;

View File

@ -236,36 +236,40 @@ private void loadCommitters(Repository repo) throws IOException {
SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
File list = new File(repo.getDirectory(), "gerrit_committers");
BufferedReader br = new BufferedReader(new FileReader(list));
String line;
try {
String line;
while ((line = br.readLine()) != null) {
String[] field = line.trim().split(" *\\| *");
String user = field[1];
String name = field[2];
String email = field[3];
Date begin = parseDate(dt, field[4]);
Date end = parseDate(dt, field[5]);
while ((line = br.readLine()) != null) {
String[] field = line.trim().split(" *\\| *");
String user = field[1];
String name = field[2];
String email = field[3];
Date begin = parseDate(dt, field[4]);
Date end = parseDate(dt, field[5]);
if (user.startsWith("username:"))
user = user.substring("username:".length());
if (user.startsWith("username:"))
user = user.substring("username:".length());
Committer who = committersById.get(user);
if (who == null) {
who = new Committer(user);
int sp = name.indexOf(' ');
if (0 < sp) {
who.setFirstName(name.substring(0, sp).trim());
who.setLastName(name.substring(sp + 1).trim());
} else {
who.setFirstName(name);
who.setLastName(null);
Committer who = committersById.get(user);
if (who == null) {
who = new Committer(user);
int sp = name.indexOf(' ');
if (0 < sp) {
who.setFirstName(name.substring(0, sp).trim());
who.setLastName(name.substring(sp + 1).trim());
} else {
who.setFirstName(name);
who.setLastName(null);
}
committersById.put(who.getID(), who);
}
committersById.put(who.getID(), who);
}
who.addEmailAddress(email);
who.addActiveRange(new ActiveRange(begin, end));
committersByEmail.put(email, who);
who.addEmailAddress(email);
who.addActiveRange(new ActiveRange(begin, end));
committersByEmail.put(email, who);
}
} finally {
br.close();
}
}

View File

@ -96,7 +96,7 @@
* <p>
*/
class RebuildCommitGraph extends TextBuiltin {
private final String REALLY = "--destroy-this-repository";
private static final String REALLY = "--destroy-this-repository";
@Option(name = REALLY, usage = "usage_approveDestructionOfRepository")
boolean really;

View File

@ -176,7 +176,7 @@ PersonIdent authorFor(final PlotCommit<SwingLane> c) {
}
}
class NameCellRender extends DefaultTableCellRenderer {
static class NameCellRender extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(final JTable table,
@ -194,7 +194,7 @@ public Component getTableCellRendererComponent(final JTable table,
}
}
class DateCellRender extends DefaultTableCellRenderer {
static class DateCellRender extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
private final DateFormat fmt = new SimpleDateFormat(
@ -215,7 +215,7 @@ public Component getTableCellRendererComponent(final JTable table,
}
}
class GraphCellRender extends DefaultTableCellRenderer {
static class GraphCellRender extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
private final AWTPlotRenderer renderer = new AWTPlotRenderer(this);

View File

@ -83,5 +83,9 @@ protected void recycleLane(final SwingLane lane) {
static class SwingLane extends PlotLane {
Color color;
@Override
public boolean equals(Object o) {
return super.equals(o) && color.equals(((SwingLane)o).color);
}
}
}

View File

@ -139,15 +139,15 @@ public void formatEdits(final OutputStream out, final RawText a,
while (aCur < aEnd || bCur < bEnd) {
if (aCur < curEdit.getBeginA() || endIdx + 1 < curIdx) {
writeLine(out, ' ', a, aCur);
writeContextLine(out, a, aCur, isEndOfLineMissing(a, aCur));
aCur++;
bCur++;
} else if (aCur < curEdit.getEndA()) {
writeLine(out, '-', a, aCur++);
writeRemovedLine(out, a, aCur, isEndOfLineMissing(a, aCur));
aCur++;
} else if (bCur < curEdit.getEndB()) {
writeLine(out, '+', b, bCur++);
writeAddedLine(out, b, bCur, isEndOfLineMissing(b, bCur));
bCur++;
}
if (end(curEdit, aCur, bCur) && ++curIdx < edits.size())
@ -156,12 +156,85 @@ public void formatEdits(final OutputStream out, final RawText a,
}
}
private void writeHunkHeader(final OutputStream out, int aCur, int aEnd,
int bCur, int bEnd) throws IOException {
/**
* Output a line of diff context
*
* @param out
* OutputStream
* @param text
* RawText for accessing raw data
* @param line
* the line number within text
* @param endOfLineMissing
* true if we should add the GNU end of line missing warning
* @throws IOException
*/
protected void writeContextLine(final OutputStream out, final RawText text,
final int line, boolean endOfLineMissing) throws IOException {
writeLine(out, ' ', text, line, endOfLineMissing);
}
private boolean isEndOfLineMissing(final RawText text, final int line) {
return line + 1 == text.size() && text.isMissingNewlineAtEnd();
}
/**
* Output an added line
*
* @param out
* OutputStream
* @param text
* RawText for accessing raw data
* @param line
* the line number within text
* @param endOfLineMissing
* true if we should add the gnu end of line missing warning
* @throws IOException
*/
protected void writeAddedLine(final OutputStream out, final RawText text, final int line, boolean endOfLineMissing)
throws IOException {
writeLine(out, '+', text, line, endOfLineMissing);
}
/**
* Output a removed line
*
* @param out
* OutputStream
* @param text
* RawText for accessing raw data
* @param line
* the line number within text
* @param endOfLineMissing
* true if we should add the gnu end of line missing warning
* @throws IOException
*/
protected void writeRemovedLine(final OutputStream out, final RawText text,
final int line, boolean endOfLineMissing) throws IOException {
writeLine(out, '-', text, line, endOfLineMissing);
}
/**
* Output a hunk header
*
* @param out
* OutputStream
* @param aStartLine
* within first source
* @param aEndLine
* within first source
* @param bStartLine
* within second source
* @param bEndLine
* within second source
* @throws IOException
*/
protected void writeHunkHeader(final OutputStream out, int aStartLine, int aEndLine,
int bStartLine, int bEndLine) throws IOException {
out.write('@');
out.write('@');
writeRange(out, '-', aCur + 1, aEnd - aCur);
writeRange(out, '+', bCur + 1, bEnd - bCur);
writeRange(out, '-', aStartLine + 1, aEndLine - aStartLine);
writeRange(out, '+', bStartLine + 1, bEndLine - bStartLine);
out.write(' ');
out.write('@');
out.write('@');
@ -199,12 +272,17 @@ private static void writeRange(final OutputStream out, final char prefix,
}
private static void writeLine(final OutputStream out, final char prefix,
final RawText text, final int cur) throws IOException {
final RawText text, final int cur, boolean noNewLineIndicator) throws IOException {
out.write(prefix);
text.writeLine(out, cur);
out.write('\n');
if (cur + 1 == text.size() && text.isMissingNewlineAtEnd())
out.write(noNewLine);
if (noNewLineIndicator)
writeNoNewLine(out);
}
private static void writeNoNewLine(final OutputStream out)
throws IOException {
out.write(noNewLine);
}
private int findCombinedEnd(final List<Edit> edits, final int i) {

View File

@ -353,7 +353,8 @@ private boolean config_filemode() {
if (filemode != null)
return filemode.booleanValue();
RepositoryConfig config = db.getConfig();
return config.getBoolean("core", null, "filemode", true);
filemode = Boolean.valueOf(config.getBoolean("core", null, "filemode", true));
return filemode.booleanValue();
}
/** An index entry */

View File

@ -64,8 +64,6 @@
* Three-way merges are no performed. See {@link #setFailOnConflict(boolean)}.
*/
public class WorkDirCheckout {
Repository repo;
File root;
GitIndex index;
@ -87,7 +85,6 @@ public void setFailOnConflict(boolean failOnConflict) {
WorkDirCheckout(Repository repo, File workDir,
GitIndex oldIndex, GitIndex newIndex) throws IOException {
this.repo = repo;
this.root = workDir;
this.index = oldIndex;
this.merge = repo.mapTree(newIndex.writeTree());
@ -103,7 +100,6 @@ public void setFailOnConflict(boolean failOnConflict) {
*/
public WorkDirCheckout(Repository repo, File root,
GitIndex index, Tree merge) {
this.repo = repo;
this.root = root;
this.index = index;
this.merge = merge;

View File

@ -139,7 +139,6 @@ protected void enter(final int index, final PlotCommit<L> currCommit) {
rObj.addPassingLane(c.lane);
}
currCommit.lane = c.lane;
currCommit.lane.parent = currCommit;
} else {
// More than one child, or our child is a merge.
// Use a different lane.
@ -154,7 +153,6 @@ protected void enter(final int index, final PlotCommit<L> currCommit) {
}
currCommit.lane = nextFreeLane();
currCommit.lane.parent = currCommit;
activeLanes.add(currCommit.lane);
int remaining = nChildren;

View File

@ -49,8 +49,6 @@
* Commits are strung onto a lane. For many UIs a lane represents a column.
*/
public class PlotLane {
PlotCommit parent;
int position;
/**