From 0bd7f91c6608e7cd72349c89494103aed40be22d Mon Sep 17 00:00:00 2001
From: Jeremy Mack <jmacktdkc@gmail.com>
Date: Fri, 16 Dec 2011 09:51:38 -0500
Subject: [PATCH] Project destroy relationship speed fix

Removes destroy callback for users_projects when a project is destroyed.
This works okay becaues the gitolite config will be updated at at the
end to remove the entry entirely, thereby removing the users anyway.
---
 app/controllers/projects_controller.rb | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 1f1da559abf..5f4f2524327 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -93,7 +93,11 @@ class ProjectsController < ApplicationController
   end
 
   def destroy
+    # Disable the UsersProject update_repository call, otherwise it will be
+    # called once for every person removed from the project
+    UsersProject.skip_callback(:destroy, :after, :update_repository)
     project.destroy
+    UsersProject.set_callback(:destroy, :after, :update_repository)
 
     respond_to do |format|
       format.html { redirect_to projects_url }
-- 
GitLab