From 6e55f53a790145dbbe78b8860004e4743e47acf1 Mon Sep 17 00:00:00 2001
From: Tom <tw201207@gmail.com>
Date: Thu, 06 Nov 2014 16:53:38 -0500
Subject: [PATCH] Add min-width in .diff-line CSS
---
src/main/java/com/gitblit/utils/DiffUtils.java | 39 ++++++++++++++++++++++++++++++++++++---
1 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/gitblit/utils/DiffUtils.java b/src/main/java/com/gitblit/utils/DiffUtils.java
index 107f6ab..f597b94 100644
--- a/src/main/java/com/gitblit/utils/DiffUtils.java
+++ b/src/main/java/com/gitblit/utils/DiffUtils.java
@@ -228,15 +228,16 @@
DiffStat stat = null;
String diff = null;
try {
- final ByteArrayOutputStream os = new ByteArrayOutputStream();
+ ByteArrayOutputStream os = null;
RawTextComparator cmp = RawTextComparator.DEFAULT;
DiffFormatter df;
switch (outputType) {
case HTML:
- df = new GitBlitDiffFormatter(os, commit.getName());
+ df = new GitBlitDiffFormatter(commit.getName(), path);
break;
case PLAIN:
default:
+ os = new ByteArrayOutputStream();
df = new DiffFormatter(os);
break;
}
@@ -271,6 +272,7 @@
} else {
df.format(diffEntries);
}
+ df.flush();
if (df instanceof GitBlitDiffFormatter) {
// workaround for complex private methods in DiffFormatter
diff = ((GitBlitDiffFormatter) df).getHtml();
@@ -278,7 +280,6 @@
} else {
diff = os.toString();
}
- df.flush();
} catch (Throwable t) {
LOGGER.error("failed to generate commit diff!", t);
}
@@ -346,6 +347,38 @@
return diff;
}
+ /**
+ * Returns the diffstat between the two commits for the specified file or folder.
+ *
+ * @param repository
+ * @param base
+ * if base commit is unspecified, the diffstat is generated against
+ * the primary parent of the specified tip.
+ * @param tip
+ * @param path
+ * if path is specified, the diffstat is generated only for the
+ * specified file or folder. if unspecified, the diffstat is
+ * generated for the entire diff between the two commits.
+ * @return patch as a string
+ */
+ public static DiffStat getDiffStat(Repository repository, String base, String tip) {
+ RevCommit baseCommit = null;
+ RevCommit tipCommit = null;
+ RevWalk revWalk = new RevWalk(repository);
+ try {
+ tipCommit = revWalk.parseCommit(repository.resolve(tip));
+ if (!StringUtils.isEmpty(base)) {
+ baseCommit = revWalk.parseCommit(repository.resolve(base));
+ }
+ return getDiffStat(repository, baseCommit, tipCommit, null);
+ } catch (Exception e) {
+ LOGGER.error("failed to generate diffstat!", e);
+ } finally {
+ revWalk.dispose();
+ }
+ return null;
+ }
+
public static DiffStat getDiffStat(Repository repository, RevCommit commit) {
return getDiffStat(repository, null, commit, null);
}
--
Gitblit v1.9.1