Skip to content

Commit 765cb3a

Browse files
author
root
committed
Fix #175
1 parent 3aa447d commit 765cb3a

File tree

4 files changed

+27
-26
lines changed

4 files changed

+27
-26
lines changed

Diff for: lib/redmine_git_hosting/patches/project_patch.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def self.included(base)
77
base.class_eval do
88
unloadable
99

10-
scope :active_or_archived, -> { where "status = #{Project::STATUS_ACTIVE} OR status = #{Project::STATUS_ARCHIVED}" }
10+
scope :active_or_closed, -> { where "status = #{Project::STATUS_ACTIVE} OR status = #{Project::STATUS_CLOSED}" }
1111

1212
# Place additional constraints on repository identifiers
1313
# because of multi repos

Diff for: lib/redmine_git_hosting/patches/roles_controller_patch.rb

+2-5
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,8 @@ def permissions_with_git_hosting(&block)
5151

5252

5353
def resync_gitolite(message)
54-
projects = Project.active_or_archived.includes(:repositories).all
55-
if projects.length > 0
56-
RedmineGitolite::GitHosting.logger.info { "Role has been #{message}, resync all projects..." }
57-
RedmineGitolite::GitHosting.resync_gitolite(:update_projects, 'all')
58-
end
54+
RedmineGitolite::GitHosting.logger.info { "Role has been #{message}, resync all projects (active or closed)..." }
55+
RedmineGitolite::GitHosting.resync_gitolite(:update_projects, 'active_or_closed')
5956
end
6057

6158
end

Diff for: lib/redmine_git_hosting/patches/setting_patch.rb

+18-18
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,8 @@ def restore_git_hosting_values
350350
@@old_valuehash[:gitolite_ssh_private_key] != valuehash[:gitolite_ssh_private_key] ||
351351
@@old_valuehash[:gitolite_ssh_public_key] != valuehash[:gitolite_ssh_public_key] ||
352352
@@old_valuehash[:gitolite_server_port] != valuehash[:gitolite_server_port]
353-
# Need to update scripts
354-
RedmineGitolite::Scripts.update_scripts
353+
354+
RedmineGitolite::Scripts.update_scripts
355355
end
356356

357357

@@ -360,7 +360,8 @@ def restore_git_hosting_values
360360
@@old_valuehash[:gitolite_redmine_storage_dir] != valuehash[:gitolite_redmine_storage_dir] ||
361361
@@old_valuehash[:hierarchical_organisation] != valuehash[:hierarchical_organisation]
362362
# Need to update everyone!
363-
projects = Project.active_or_archived.includes(:repositories).all.select { |x| x if x.parent_id.nil? }
363+
# We take all root projects (even those who are closed) and move each hierarchy individually
364+
projects = Project.includes(:repositories).all.select { |x| x if x.parent_id.nil? }
364365
if projects.length > 0
365366
RedmineGitolite::GitHosting.logger.info { "Gitolite configuration has been modified : repositories hierarchy" }
366367
RedmineGitolite::GitHosting.logger.info { "Resync all projects (root projects : '#{projects.length}')..." }
@@ -371,17 +372,21 @@ def restore_git_hosting_values
371372

372373
## Gitolite config file has changed, create a new one!
373374
if @@old_valuehash[:gitolite_config_file] != valuehash[:gitolite_config_file] ||
374-
@@old_valuehash[:gitolite_config_has_admin_key] != valuehash[:gitolite_config_has_admin_key] ||
375-
@@old_valuehash[:gitolite_notify_global_prefix] != valuehash[:gitolite_notify_global_prefix] ||
375+
@@old_valuehash[:gitolite_config_has_admin_key] != valuehash[:gitolite_config_has_admin_key]
376+
377+
RedmineGitolite::GitHosting.logger.info { "Gitolite configuration has been modified, resync all projects (active, closed, archived)..." }
378+
RedmineGitolite::GitHosting.resync_gitolite(:update_projects, 'all')
379+
end
380+
381+
382+
## Gitolite default values has changed, update active projects
383+
if @@old_valuehash[:gitolite_notify_global_prefix] != valuehash[:gitolite_notify_global_prefix] ||
376384
@@old_valuehash[:gitolite_notify_global_sender_address] != valuehash[:gitolite_notify_global_sender_address] ||
377385
@@old_valuehash[:gitolite_notify_global_include] != valuehash[:gitolite_notify_global_include] ||
378386
@@old_valuehash[:gitolite_notify_global_exclude] != valuehash[:gitolite_notify_global_exclude]
379-
# Need to update everyone!
380-
projects = Project.active_or_archived.includes(:repositories).all
381-
if projects.length > 0
382-
RedmineGitolite::GitHosting.logger.info { "Gitolite configuration has been modified, resync all projects..." }
383-
RedmineGitolite::GitHosting.resync_gitolite(:update_projects, 'all')
384-
end
387+
388+
RedmineGitolite::GitHosting.logger.info { "Gitolite configuration has been modified, resync all active projects..." }
389+
RedmineGitolite::GitHosting.resync_gitolite(:update_projects, 'active')
385390
end
386391

387392

@@ -394,13 +399,8 @@ def restore_git_hosting_values
394399

395400
## A resync has been asked within the interface, update all projects in force mode
396401
if @@resync_projects == true
397-
# Need to update everyone!
398-
projects = Project.active_or_archived.includes(:repositories).all
399-
if projects.length > 0
400-
RedmineGitolite::GitHosting.logger.info { "Forced resync of all projects (#{projects.length})..." }
401-
RedmineGitolite::GitHosting.resync_gitolite(:update_projects, 'all', {:force => true})
402-
end
403-
402+
RedmineGitolite::GitHosting.logger.info { "Forced resync of all projects (active, closed, archived)..." }
403+
RedmineGitolite::GitHosting.resync_gitolite(:update_projects, 'all', {:force => true})
404404
@@resync_projects = false
405405
end
406406

Diff for: lib/redmine_gitolite/gitolite_wrapper/projects.rb

+6-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ class Projects < Admin
1010

1111
def update_projects
1212
if @object_id == 'all'
13-
projects = Project.active_or_archived.includes(:repositories).all
13+
projects = Project.includes(:repositories).all
14+
elsif @object_id == 'active'
15+
projects = Project.active.includes(:repositories).all
16+
elsif @object_id == 'active_or_closed'
17+
projects = Project.active_or_closed.includes(:repositories).all
1418
else
1519
projects = @object_id.map{ |project_id| Project.find_by_id(project_id) }
1620
end
@@ -35,7 +39,7 @@ def move_repositories
3539

3640

3741
def move_repositories_tree
38-
projects = Project.active_or_archived.includes(:repositories).all.select{ |x| x.parent_id.nil? }
42+
projects = Project.includes(:repositories).all.select{ |x| x.parent_id.nil? }
3943

4044
@admin.transaction do
4145
@delete_parent_path = []

0 commit comments

Comments
 (0)