From d00a0ca46fcde3e3e580afea6a548b9c12aeac25 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 11 Jul 2012 17:18:02 -0400
Subject: [PATCH] Update to slf4j 1.6.6 and log4j 1.2.17
---
src/com/gitblit/utils/ActivityUtils.java | 106 ++++++++++++++++++++++++++---------------------------
1 files changed, 52 insertions(+), 54 deletions(-)
diff --git a/src/com/gitblit/utils/ActivityUtils.java b/src/com/gitblit/utils/ActivityUtils.java
index 204fe3c..718ca90 100644
--- a/src/com/gitblit/utils/ActivityUtils.java
+++ b/src/com/gitblit/utils/ActivityUtils.java
@@ -23,11 +23,11 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.TimeZone;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
@@ -59,12 +59,14 @@
* @param daysBack
* the number of days back from Now to collect
* @param objectId
- * the branch to retrieve. If this value is null the default
- * branch of the repository is used.
+ * the branch to retrieve. If this value is null or empty all
+ * branches are queried.
+ * @param timezone
+ * the timezone for aggregating commits
* @return
*/
public static List<Activity> getRecentActivity(List<RepositoryModel> models, int daysBack,
- String objectId) {
+ String objectId, TimeZone timezone) {
// Activity panel shows last daysBack of activity across all
// repositories.
@@ -73,64 +75,60 @@
// Build a map of DailyActivity from the available repositories for the
// specified threshold date.
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+ df.setTimeZone(timezone);
Calendar cal = Calendar.getInstance();
+ cal.setTimeZone(timezone);
Map<String, Activity> activity = new HashMap<String, Activity>();
for (RepositoryModel model : models) {
if (model.hasCommits && model.lastChange.after(thresholdDate)) {
- Repository repository = GitBlit.self().getRepository(model.name);
- List<RevCommit> commits = JGitUtils.getRevLog(repository, objectId, thresholdDate);
- Map<ObjectId, List<RefModel>> allRefs = JGitUtils.getAllRefs(repository);
+ Repository repository = GitBlit.self()
+ .getRepository(model.name);
+ List<String> branches = new ArrayList<String>();
+ if (StringUtils.isEmpty(objectId)) {
+ for (RefModel local : JGitUtils.getLocalBranches(
+ repository, true, -1)) {
+ branches.add(local.getName());
+ }
+ } else {
+ branches.add(objectId);
+ }
+ Map<ObjectId, List<RefModel>> allRefs = JGitUtils
+ .getAllRefs(repository);
+
+ for (String branch : branches) {
+ String shortName = branch;
+ if (shortName.startsWith(Constants.R_HEADS)) {
+ shortName = shortName.substring(Constants.R_HEADS.length());
+ }
+ List<RevCommit> commits = JGitUtils.getRevLog(repository,
+ branch, thresholdDate);
+ for (RevCommit commit : commits) {
+ Date date = JGitUtils.getCommitDate(commit);
+ String dateStr = df.format(date);
+ if (!activity.containsKey(dateStr)) {
+ // Normalize the date to midnight
+ cal.setTime(date);
+ cal.set(Calendar.HOUR_OF_DAY, 0);
+ cal.set(Calendar.MINUTE, 0);
+ cal.set(Calendar.SECOND, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ activity.put(dateStr, new Activity(cal.getTime()));
+ }
+ RepositoryCommit commitModel = activity.get(dateStr)
+ .addCommit(model.name, shortName, commit);
+ if (commitModel != null) {
+ commitModel.setRefs(allRefs.get(commit.getId()));
+ }
+ }
+ }
+
+ // close the repository
repository.close();
-
- // determine commit branch
- String branch = objectId;
- if (StringUtils.isEmpty(branch)) {
- List<RefModel> headRefs = allRefs.get(commits.get(0).getId());
- List<String> localBranches = new ArrayList<String>();
- for (RefModel ref : headRefs) {
- if (ref.getName().startsWith(Constants.R_HEADS)) {
- localBranches.add(ref.getName().substring(Constants.R_HEADS.length()));
- }
- }
- // determine branch
- if (localBranches.size() == 1) {
- // only one branch, choose it
- branch = localBranches.get(0);
- } else if (localBranches.size() > 1) {
- if (localBranches.contains("master")) {
- // choose master
- branch = "master";
- } else {
- // choose first branch
- branch = localBranches.get(0);
- }
- }
- }
-
- for (RevCommit commit : commits) {
- Date date = JGitUtils.getCommitDate(commit);
- String dateStr = df.format(date);
- if (!activity.containsKey(dateStr)) {
- // Normalize the date to midnight
- cal.setTime(date);
- cal.set(Calendar.HOUR_OF_DAY, 0);
- cal.set(Calendar.MINUTE, 0);
- cal.set(Calendar.SECOND, 0);
- cal.set(Calendar.MILLISECOND, 0);
- activity.put(dateStr, new Activity(cal.getTime()));
- }
- RepositoryCommit commitModel = activity.get(dateStr).addCommit(model.name,
- branch, commit);
- commitModel.setRefs(allRefs.get(commit.getId()));
- }
}
}
List<Activity> recentActivity = new ArrayList<Activity>(activity.values());
- for (Activity daily : recentActivity) {
- Collections.sort(daily.commits);
- }
return recentActivity;
}
@@ -153,12 +151,12 @@
* @param email
* address to query Gravatar
* @param width
- * size of thumbnail. if width <= 0, the defalt of 60 is used.
+ * size of thumbnail. if width <= 0, the default of 50 is used.
* @return
*/
public static String getGravatarThumbnailUrl(String email, int width) {
if (width <= 0) {
- width = 60;
+ width = 50;
}
String emailHash = StringUtils.getMD5(email);
String url = MessageFormat.format(
--
Gitblit v1.9.1