diff options
author | Shawn Pearce <spearce@spearce.org> | 2010-06-14 19:59:48 -0400 |
---|---|---|
committer | Code Review <codereview-daemon@eclipse.org> | 2010-06-14 19:59:48 -0400 |
commit | 86fcdc53ad29d850f0831636038ef56a981c98e5 (patch) | |
tree | bc96b3498ca16def7da9b8470799f0e9b61fad29 | |
parent | 44ba1bc78ce0c00fd970f39a93128de061e83e01 (diff) | |
parent | 6d5241110bc22f69287dc285a6793301075bb3dc (diff) | |
download | jgit-86fcdc53ad29d850f0831636038ef56a981c98e5.tar.gz jgit-86fcdc53ad29d850f0831636038ef56a981c98e5.zip |
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
13 files changed, 136 insertions, 57 deletions
diff --git a/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/GitServlet.java b/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/GitServlet.java index cc4cf6a800..e28e4eeb29 100644 --- a/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/GitServlet.java +++ b/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/GitServlet.java @@ -185,7 +185,7 @@ public class GitServlet extends MetaServlet { initialized = true; - if (uploadPackFactory != ReceivePackFactory.DISABLED) { + if (uploadPackFactory != UploadPackFactory.DISABLED) { serve("*/git-upload-pack")// .with(new UploadPackServlet(uploadPackFactory)); } diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java index ea937481d4..2650db2fa8 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java @@ -112,7 +112,7 @@ public class AsIsServiceTest extends LocalDiskRepositoryTestCase { 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; diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java index 5338caaa48..4d05a085c6 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java @@ -174,7 +174,7 @@ public class DefaultReceivePackFactoryTest extends LocalDiskRepositoryTestCase { 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; diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java index 8f57d40afe..423361e06b 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java @@ -136,7 +136,7 @@ public class DefaultUploadPackFactoryTest extends LocalDiskRepositoryTestCase { 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; diff --git a/org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/IpLogGenerator.java b/org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/IpLogGenerator.java index 28df8b7f53..f64c329847 100644 --- a/org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/IpLogGenerator.java +++ b/org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/IpLogGenerator.java @@ -236,36 +236,40 @@ public class IpLogGenerator { 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; - - 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()); - - 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); + 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]); + + 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); + } + 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(); } } diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java index 38df041017..1681dbc96e 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java @@ -96,7 +96,7 @@ import org.eclipse.jgit.revwalk.RevWalk; * <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; diff --git a/org.eclipse.jgit.ui/src/org/eclipse/jgit/awtui/CommitGraphPane.java b/org.eclipse.jgit.ui/src/org/eclipse/jgit/awtui/CommitGraphPane.java index effe6e5756..13d408f19f 100644 --- a/org.eclipse.jgit.ui/src/org/eclipse/jgit/awtui/CommitGraphPane.java +++ b/org.eclipse.jgit.ui/src/org/eclipse/jgit/awtui/CommitGraphPane.java @@ -176,7 +176,7 @@ public class CommitGraphPane extends JTable { } } - 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 class CommitGraphPane extends JTable { } } - 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 class CommitGraphPane extends JTable { } } - class GraphCellRender extends DefaultTableCellRenderer { + static class GraphCellRender extends DefaultTableCellRenderer { private static final long serialVersionUID = 1L; private final AWTPlotRenderer renderer = new AWTPlotRenderer(this); diff --git a/org.eclipse.jgit.ui/src/org/eclipse/jgit/awtui/SwingCommitList.java b/org.eclipse.jgit.ui/src/org/eclipse/jgit/awtui/SwingCommitList.java index 4a11964473..b58547a9e1 100644 --- a/org.eclipse.jgit.ui/src/org/eclipse/jgit/awtui/SwingCommitList.java +++ b/org.eclipse.jgit.ui/src/org/eclipse/jgit/awtui/SwingCommitList.java @@ -83,5 +83,9 @@ class SwingCommitList extends PlotCommitList<SwingCommitList.SwingLane> { static class SwingLane extends PlotLane { Color color; + @Override + public boolean equals(Object o) { + return super.equals(o) && color.equals(((SwingLane)o).color); + } } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java index 2d552d40d9..c40d3b7000 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java @@ -139,15 +139,15 @@ public class DiffFormatter { 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 class DiffFormatter { } } - 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 @@ public class DiffFormatter { } 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) { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java index d5cab0e4c6..5da33fd6bb 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java @@ -353,7 +353,8 @@ public class GitIndex { 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 */ diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/WorkDirCheckout.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/WorkDirCheckout.java index ee78202868..cead0f2b44 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/WorkDirCheckout.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/WorkDirCheckout.java @@ -64,8 +64,6 @@ import org.eclipse.jgit.lib.GitIndex.Entry; * Three-way merges are no performed. See {@link #setFailOnConflict(boolean)}. */ public class WorkDirCheckout { - Repository repo; - File root; GitIndex index; @@ -87,7 +85,6 @@ public class WorkDirCheckout { 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 class WorkDirCheckout { */ public WorkDirCheckout(Repository repo, File root, GitIndex index, Tree merge) { - this.repo = repo; this.root = root; this.index = index; this.merge = merge; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommitList.java b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommitList.java index 61eed3fa9a..55d0206c02 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommitList.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommitList.java @@ -139,7 +139,6 @@ public class PlotCommitList<L extends PlotLane> extends 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 @@ public class PlotCommitList<L extends PlotLane> extends } currCommit.lane = nextFreeLane(); - currCommit.lane.parent = currCommit; activeLanes.add(currCommit.lane); int remaining = nChildren; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotLane.java b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotLane.java index 9d08455ce9..ff22b6473d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotLane.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotLane.java @@ -49,8 +49,6 @@ package org.eclipse.jgit.revplot; * Commits are strung onto a lane. For many UIs a lane represents a column. */ public class PlotLane { - PlotCommit parent; - int position; /** |