From 0c5cee25a1d9019de2d92427fda886a28076aa01 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 18 Sep 2013 11:31:02 -0400
Subject: [PATCH] Disable but improve the example commit message regexes
---
src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 51 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java b/src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java
index 2966aa8..a00e107 100644
--- a/src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java
+++ b/src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java
@@ -16,11 +16,14 @@
package com.gitblit.utils;
import static org.eclipse.jgit.lib.Constants.encode;
+import static org.eclipse.jgit.lib.Constants.encodeASCII;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.text.MessageFormat;
+import org.eclipse.jgit.diff.DiffFormatter;
import org.eclipse.jgit.diff.RawText;
import org.eclipse.jgit.util.RawParseUtils;
@@ -30,7 +33,7 @@
* @author James Moger
*
*/
-public class GitBlitDiffFormatter extends GitWebDiffFormatter {
+public class GitBlitDiffFormatter extends DiffFormatter {
private final OutputStream os;
@@ -68,6 +71,39 @@
os.write("</td></tr>\n".getBytes());
left = aStartLine + 1;
right = bStartLine + 1;
+ }
+
+ protected void writeRange(final char prefix, final int begin, final int cnt) throws IOException {
+ os.write(' ');
+ os.write(prefix);
+ switch (cnt) {
+ case 0:
+ // If the range is empty, its beginning number must
+ // be the
+ // line just before the range, or 0 if the range is
+ // at the
+ // start of the file stream. Here, begin is always 1
+ // based,
+ // so an empty file would produce "0,0".
+ //
+ os.write(encodeASCII(begin - 1));
+ os.write(',');
+ os.write('0');
+ break;
+
+ case 1:
+ // If the range is exactly one line, produce only
+ // the number.
+ //
+ os.write(encodeASCII(begin));
+ break;
+
+ default:
+ os.write(encodeASCII(begin));
+ os.write(',');
+ os.write(encodeASCII(cnt));
+ break;
+ }
}
@Override
@@ -109,7 +145,6 @@
*
* @return
*/
- @Override
public String getHtml() {
ByteArrayOutputStream bos = (ByteArrayOutputStream) os;
String html = RawParseUtils.decode(bos.toByteArray());
@@ -150,12 +185,25 @@
sb.append("</tbody></table></div>\n");
inFile = false;
}
- sb.append("<div class='header'>").append(line).append("</div>");
+
+ sb.append(MessageFormat.format("<div class='header'><div class=\"diffHeader\" id=\"{0}\"><i class=\"icon-file\"></i> ", line)).append(line).append("</div></div>");
sb.append("<div class=\"diff\">");
sb.append("<table><tbody>");
inFile = true;
} else {
+ boolean gitLinkDiff = line.length() > 0 && line.substring(1).startsWith("Subproject commit");
+ if (gitLinkDiff) {
+ sb.append("<tr><th></th><th></th>");
+ if (line.charAt(0) == '+') {
+ sb.append("<td><div class=\"diff add2\">");
+ } else {
+ sb.append("<td><div class=\"diff remove2\">");
+ }
+ }
sb.append(line);
+ if (gitLinkDiff) {
+ sb.append("</div></td></tr>");
+ }
}
}
sb.append("</table></div>");
--
Gitblit v1.9.1