From 3d293a9d1194bd98beb624f1bb0b047cb4467a93 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 21 Oct 2011 08:32:27 -0400
Subject: [PATCH] Log calculation time of repository sizes. (issue 27)

---
 src/com/gitblit/GitBlit.java |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index 1727038..50eeb9e 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -470,6 +470,20 @@
 				repositories.add(model);
 			}
 		}
+		if (getBoolean(Keys.web.showRepositorySizes, true)) {
+			int repoCount = 0;
+			long startTime = System.currentTimeMillis();
+			ByteFormat byteFormat = new ByteFormat();
+			for (RepositoryModel model : repositories) {
+				if (!model.skipSizeCalculation) {
+					repoCount++;
+					model.size = byteFormat.format(calculateSize(model));
+				}
+			}
+			long duration = System.currentTimeMillis() - startTime;
+			logger.info(MessageFormat.format("{0} repository sizes calculated in {1} msecs",
+					repoCount, duration));
+		}
 		return repositories;
 	}
 
@@ -523,6 +537,7 @@
 			model.showRemoteBranches = getConfig(config, "showRemoteBranches", false);
 			model.isFrozen = getConfig(config, "isFrozen", false);
 			model.showReadme = getConfig(config, "showReadme", false);
+			model.skipSizeCalculation = getConfig(config, "skipSizeCalculation", false);
 			model.federationStrategy = FederationStrategy.fromName(getConfig(config,
 					"federationStrategy", null));
 			model.federationSets = new ArrayList<String>(Arrays.asList(config.getStringList(
@@ -531,10 +546,6 @@
 			model.origin = config.getString("remote", "origin", "url");
 		}
 		r.close();
-		if (getBoolean(Keys.web.showRepositorySizes, true)) {
-			ByteFormat byteFormat = new ByteFormat();
-			model.size = byteFormat.format(calculateSize(model));			
-		}
 		return model;
 	}
 
@@ -707,6 +718,7 @@
 		config.setBoolean("gitblit", null, "showRemoteBranches", repository.showRemoteBranches);
 		config.setBoolean("gitblit", null, "isFrozen", repository.isFrozen);
 		config.setBoolean("gitblit", null, "showReadme", repository.showReadme);
+		config.setBoolean("gitblit", null, "skipSizeCalculation", repository.skipSizeCalculation);
 		config.setStringList("gitblit", null, "federationSets", repository.federationSets);
 		config.setString("gitblit", null, "federationStrategy",
 				repository.federationStrategy.name());

--
Gitblit v1.9.1