summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorTomasz Maczukin <tomasz@maczukin.pl>2015-11-19 23:40:29 +0100
committerTomasz Maczukin <tomasz@maczukin.pl>2015-11-19 23:40:29 +0100
commit945e4293cb8f745b2e1a1aebdcf4df3eeba338cc (patch)
tree64d698bfdd2cc7d1a42970e3ab61d3a39c3ee3b8 /app/services
parent6f41e3d9caa28b2a654fb775202be632673f2299 (diff)
downloadgitlab-ce-945e4293cb8f745b2e1a1aebdcf4df3eeba338cc.tar.gz
Prevent unnecessary forks iteration at parent update
Diffstat (limited to 'app/services')
-rw-r--r--app/services/projects/update_service.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/app/services/projects/update_service.rb b/app/services/projects/update_service.rb
index 67e3429c0bd..cd7a8b18218 100644
--- a/app/services/projects/update_service.rb
+++ b/app/services/projects/update_service.rb
@@ -13,7 +13,7 @@ module Projects
end
return false unless visibility_level_allowed?(new_visibility)
- update_forks_visibility_level(new_visibility)
+ update_forks_visibility_level(new_visibility.to_i)
end
new_branch = params[:default_branch]
@@ -44,11 +44,13 @@ module Projects
end
def update_forks_visibility_level(new_level)
+ return unless new_level < project.visibility_level
+
project.forks.each do |forked_project|
fork_level = forked_project.visibility_level
- if fork_level > new_level.to_i
- forked_project.visibility_level = new_level.to_i
+ if fork_level > new_level
+ forked_project.visibility_level = new_level
forked_project.save!
end
end