From b384a9923314ef0ab7ec0e9f506c8d52cc31f5fc Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 27 Sep 2013 21:33:34 -0400 Subject: [PATCH] Fix width calculation in branch graph when there are 0 or 1 commits --- src/main/java/com/gitblit/BranchGraphServlet.java | 52 ++++++++++++++++++++++++++++------------------------ 1 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/gitblit/BranchGraphServlet.java b/src/main/java/com/gitblit/BranchGraphServlet.java index f46b8e6..05c3c65 100644 --- a/src/main/java/com/gitblit/BranchGraphServlet.java +++ b/src/main/java/com/gitblit/BranchGraphServlet.java @@ -154,31 +154,34 @@ commitList.fillTo(2*Math.max(requestedCommits, maxCommits)); // determine the appropriate width for the image - int numLanes = 0; + int numLanes = 1; int numCommits = Math.min(requestedCommits, commitList.size()); - Set<String> parents = new TreeSet<String>(); - for (int i = 0; i < commitList.size(); i++) { - PlotCommit<Lane> commit = commitList.get(i); - boolean checkLane = false; - - if (i < numCommits) { - // commit in visible list - checkLane = true; - - // remember parents - for (RevCommit p : commit.getParents()) { - parents.add(p.getName()); + if (numCommits > 1) { + // determine graph width + Set<String> parents = new TreeSet<String>(); + for (int i = 0; i < commitList.size(); i++) { + PlotCommit<Lane> commit = commitList.get(i); + boolean checkLane = false; + + if (i < numCommits) { + // commit in visible list + checkLane = true; + + // remember parents + for (RevCommit p : commit.getParents()) { + parents.add(p.getName()); + } + } else if (parents.contains(commit.getName())) { + // commit outside visible list, but it is a parent of a + // commit in the visible list so we need to know it's lane + // assignment + checkLane = true; } - } else if (parents.contains(commit.getName())) { - // commit outside visible list, but it is a parent of a - // commit in the visible list so we need to know it's lane - // assignment - checkLane = true; - } - - if (checkLane) { - int pos = commit.getLane().getPosition(); - numLanes = Math.max(numLanes, pos + 1); + + if (checkLane) { + int pos = commit.getLane().getPosition(); + numLanes = Math.max(numLanes, pos + 1); + } } } @@ -187,6 +190,7 @@ // create an image buffer and render the lanes BufferedImage image = new BufferedImage(graphWidth, rowHeight*numCommits, BufferedImage.TYPE_INT_ARGB); + Graphics2D g = null; try { g = image.createGraphics(); @@ -211,7 +215,7 @@ // write the image buffer to the client response.setContentType("image/png"); - if (numCommits > 0) { + if (numCommits > 1) { response.setHeader("Cache-Control", "public, max-age=60, must-revalidate"); response.setDateHeader("Last-Modified", JGitUtils.getCommitDate(commitList.get(0)).getTime()); } -- Gitblit v1.9.1