diff options
Diffstat (limited to 'app/models/project.rb')
-rw-r--r-- | app/models/project.rb | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index ea6c1b87d6d..abcaa2cb182 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1116,12 +1116,16 @@ class Project < ActiveRecord::Base forked_project_links end - hierarchy = Gitlab::Database::Hierarchy.new(related_links, - source_column: :forked_to_project_id, - descendant_column: :forked_from_project_id, - recursion: 2) - all_forked_project_links = hierarchy.all - @fork_network = self.class.where(id: all_forked_project_links.select(:forked_to_project_id)) + if Gitlab::Database.postgresql? + hierarchy = Gitlab::Database::Hierarchy + .new(related_links, + source_column: :forked_to_project_id, + descendant_column: :forked_from_project_id, + recursion: 3) + related_links = hierarchy.all + end + + @fork_network = self.class.where(id: related_links.select(:forked_to_project_id)) .where.not(id: self) end |