From 1c5a45ebe6285b0f6a9b8f50d5467baa11a1ff63 Mon Sep 17 00:00:00 2001
From: mrbytes <eguervos@msn.com>
Date: Fri, 19 Jul 2013 03:25:05 -0400
Subject: [PATCH] Merge branch 'master' of https://github.com/gitblit/gitblit

---
 src/main/java/com/gitblit/git/ReceiveHook.java |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/git/ReceiveHook.java b/src/main/java/com/gitblit/git/ReceiveHook.java
index e0b7798..d75a238 100644
--- a/src/main/java/com/gitblit/git/ReceiveHook.java
+++ b/src/main/java/com/gitblit/git/ReceiveHook.java
@@ -36,6 +36,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.gitblit.Constants;
 import com.gitblit.Constants.AccessRestrictionType;
 import com.gitblit.GitBlit;
 import com.gitblit.Keys;
@@ -44,6 +45,7 @@
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.ClientLogger;
+import com.gitblit.utils.CommitCache;
 import com.gitblit.utils.JGitUtils;
 import com.gitblit.utils.RefLogUtils;
 import com.gitblit.utils.StringUtils;
@@ -186,6 +188,21 @@
 				return;
 			}
 		}
+		
+		// reset branch commit cache on REWIND and DELETE
+		for (ReceiveCommand cmd : commands) {
+			String ref = cmd.getRefName();
+			if (ref.startsWith(Constants.R_HEADS)) {
+				switch (cmd.getType()) {
+				case UPDATE_NONFASTFORWARD:
+				case DELETE:
+					CommitCache.instance().clear(repository.name, ref);
+					break;
+				default:
+					break;
+				}
+			}
+		}
 
 		Set<String> scripts = new LinkedHashSet<String>();
 		scripts.addAll(GitBlit.self().getPreReceiveScriptsInherited(repository));

--
Gitblit v1.9.1