From fc84260e4238fda10842c1bd3b9fb0cb74b95426 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 04 Apr 2011 16:13:11 -0400
Subject: [PATCH] Dropped log links, created new stylesheet, added activity graph.
---
src/com/gitblit/utils/JGitUtils.java | 36 +++++++++++++++++++++++++++++++-----
1 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java
index 673c987..31b5677 100644
--- a/src/com/gitblit/utils/JGitUtils.java
+++ b/src/com/gitblit/utils/JGitUtils.java
@@ -5,6 +5,8 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -35,9 +37,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.gitblit.wicket.models.Metric;
import com.gitblit.wicket.models.PathModel;
import com.gitblit.wicket.models.RefModel;
-
public class JGitUtils {
@@ -204,7 +206,7 @@
public static List<PathModel> getFilesInPath(Repository r, String basePath, RevCommit commit) {
List<PathModel> list = new ArrayList<PathModel>();
- final TreeWalk walk = new TreeWalk(r);
+ final TreeWalk walk = new TreeWalk(r);
try {
walk.addTree(commit.getTree());
if (basePath != null && basePath.length() > 0) {
@@ -214,7 +216,7 @@
boolean foundFolder = false;
while (walk.next()) {
if (!foundFolder && walk.isSubtree()) {
- walk.enterSubtree();
+ walk.enterSubtree();
}
if (walk.getPathString().equals(basePath)) {
foundFolder = true;
@@ -264,7 +266,7 @@
return list;
}
- private static PathModel getPathModel(TreeWalk walk, String basePath, RevCommit commit) {
+ private static PathModel getPathModel(TreeWalk walk, String basePath, RevCommit commit) {
String name;
long size = 0;
if (basePath == null) {
@@ -310,7 +312,6 @@
return FileMode.TREE.equals(mode);
}
-
public static List<RevCommit> getRevLog(Repository r, int maxCount) {
List<RevCommit> list = new ArrayList<RevCommit>();
try {
@@ -427,4 +428,29 @@
}
return null;
}
+
+ public static List<Metric> getDateMetrics(Repository r) {
+ final Map<String, Metric> map = new HashMap<String, Metric>();
+ try {
+ DateFormat df = new SimpleDateFormat("yyyy-MM");
+ Git git = new Git(r);
+ Iterable<RevCommit> revlog = git.log().call();
+ for (RevCommit rev : revlog) {
+ Date d = getCommitDate(rev);
+ String p = df.format(d);
+ if (!map.containsKey(p))
+ map.put(p, new Metric(p));
+ map.get(p).count++;
+ }
+ } catch (Throwable t) {
+ LOGGER.error("Failed to mine log history for metrics", t);
+ }
+ List<String> keys = new ArrayList<String>(map.keySet());
+ Collections.sort(keys);
+ List<Metric> metrics = new ArrayList<Metric>();
+ for (String key:keys) {
+ metrics.add(map.get(key));
+ }
+ return metrics;
+ }
}
--
Gitblit v1.9.1