From 9bc17d16ea48a7978b198126d346828b1d24fe4e Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 18 Apr 2011 22:29:20 -0400
Subject: [PATCH] Color-coded change type indicator with tooltip for changed paths.

---
 src/com/gitblit/wicket/pages/PatchPage.java |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/PatchPage.java b/src/com/gitblit/wicket/pages/PatchPage.java
index 52790d6..45c1bf5 100644
--- a/src/com/gitblit/wicket/pages/PatchPage.java
+++ b/src/com/gitblit/wicket/pages/PatchPage.java
@@ -9,10 +9,10 @@
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
 
+import com.gitblit.GitBlit;
 import com.gitblit.utils.JGitUtils;
-import com.gitblit.wicket.GitBlitWebApp;
+import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.WicketUtils;
-
 
 public class PatchPage extends WebPage {
 
@@ -24,14 +24,15 @@
 			redirectToInterceptPage(new RepositoriesPage());
 		}
 		final String repositoryName = WicketUtils.getRepositoryName(params);
-		final String objectId = WicketUtils.getObject(params);		
+		final String baseObjectId = WicketUtils.getBaseObjectId(params);
+		final String objectId = WicketUtils.getObject(params);
 		final String blobPath = WicketUtils.getPath(params);
 
 		ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest();
 		HttpServletRequest req = servletWebRequest.getHttpServletRequest();
 		req.getServerName();
 
-		Repository r = GitBlitWebApp.get().getRepository(req, repositoryName);
+		Repository r = GitBlit.self().getRepository(req, repositoryName);
 		if (r == null) {
 			error("Can not load repository " + repositoryName);
 			redirectToInterceptPage(new RepositoriesPage());
@@ -39,8 +40,14 @@
 		}
 
 		RevCommit commit = JGitUtils.getCommit(r, objectId);
-		String patch = JGitUtils.getCommitPatch(r, commit, blobPath);
+		String patch;
+		if (StringUtils.isEmpty(baseObjectId)) {
+			patch = JGitUtils.getCommitPatch(r, commit, blobPath);
+		} else {
+			RevCommit baseCommit = JGitUtils.getCommit(r, baseObjectId);
+			patch = JGitUtils.getCommitPatch(r, baseCommit, commit, blobPath);			
+		}
 		add(new Label("patchText", patch));
 		r.close();
-	}	
+	}
 }

--
Gitblit v1.9.1