diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-06-10 18:32:48 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-06-10 18:32:48 +0000 |
commit | 8a491dbae94b8fbb4ca4241cba7650c81380e98e (patch) | |
tree | 8e101ad72dd82a614a6e17151c9fd76d2a9fccf2 /app/models/repository | |
parent | 7c105ec9e93b73f5c11f2d5cc240e2b15344ec98 (diff) | |
download | redmine-8a491dbae94b8fbb4ca4241cba7650c81380e98e.tar.gz redmine-8a491dbae94b8fbb4ca4241cba7650c81380e98e.zip |
Faster changesets loading for subversion.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9806 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/repository')
-rw-r--r-- | app/models/repository/subversion.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/app/models/repository/subversion.rb b/app/models/repository/subversion.rb index 55dfb44f0..98c5bc108 100644 --- a/app/models/repository/subversion.rb +++ b/app/models/repository/subversion.rb @@ -81,6 +81,22 @@ class Repository::Subversion < Repository end end + protected + + def load_entries_changesets(entries) + entries_with_identifier = entries.select {|entry| entry.lastrev && entry.lastrev.identifier.present?} + identifiers = entries_with_identifier.map {|entry| entry.lastrev.identifier}.compact.uniq + + if identifiers.any? + changesets_by_identifier = changesets.where(:revision => identifiers).includes(:user, :repository).all.group_by(&:revision) + entries_with_identifier.each do |entry| + if m = changesets_by_identifier[entry.lastrev.identifier] + entry.changeset = m.first + end + end + end + end + private # Returns the relative url of the repository |