From b724448b589d60a9a7dda60cf30741048c98e199 Mon Sep 17 00:00:00 2001
From: Florian Zschocke <florian.zschocke@cycos.com>
Date: Mon, 26 Aug 2013 06:39:57 -0400
Subject: [PATCH] Fix set-gid bit clearing under Linux when effective gid is different from file gid.

---
 src/main/java/com/gitblit/models/TeamModel.java |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/gitblit/models/TeamModel.java b/src/main/java/com/gitblit/models/TeamModel.java
index e0499f7..dfbd45d 100644
--- a/src/main/java/com/gitblit/models/TeamModel.java
+++ b/src/main/java/com/gitblit/models/TeamModel.java
@@ -186,8 +186,15 @@
 	}
 	
 	public void setRepositoryPermission(String repository, AccessPermission permission) {
-		permissions.put(repository.toLowerCase(), permission);
-		repositories.add(repository.toLowerCase());
+		if (permission == null) {
+			// remove the permission
+			permissions.remove(repository.toLowerCase());
+			repositories.remove(repository.toLowerCase());
+		} else {
+			// set the new permission
+			permissions.put(repository.toLowerCase(), permission);
+			repositories.add(repository.toLowerCase());
+		}
 	}
 	
 	public RegistrantAccessPermission getRepositoryPermission(RepositoryModel repository) {

--
Gitblit v1.9.1