summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/git/ReceiveHook.java
diff options
context:
space:
mode:
authormrbytes <eguervos@msn.com>2013-07-19 09:25:05 +0200
committermrbytes <eguervos@msn.com>2013-07-19 09:25:05 +0200
commit1c5a45ebe6285b0f6a9b8f50d5467baa11a1ff63 (patch)
tree8d0afd7adf3b0a1974a107d384e25bcccd1f88f6 /src/main/java/com/gitblit/git/ReceiveHook.java
parent4e1f7cde152e35b8b8fd882fb6d54e61754fb13f (diff)
parent58708c13b6cfc1e8289d1dca698d6d228509c695 (diff)
downloadgitblit-1c5a45ebe6285b0f6a9b8f50d5467baa11a1ff63.tar.gz
gitblit-1c5a45ebe6285b0f6a9b8f50d5467baa11a1ff63.zip
Merge branch 'master' of https://github.com/gitblit/gitblit
Diffstat (limited to 'src/main/java/com/gitblit/git/ReceiveHook.java')
-rw-r--r--src/main/java/com/gitblit/git/ReceiveHook.java17
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 e0b77987..d75a2385 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.eclipse.jgit.transport.ReceivePack;
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.RepositoryModel;
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 @@ public class ReceiveHook implements PreReceiveHook, PostReceiveHook {
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));