diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-02-01 19:54:50 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-02-01 19:54:50 +0000 |
commit | ab5e07e83ef2573ae32da1a7ada5398d03777932 (patch) | |
tree | 0b41a69bd70191b8138c56923066ef212e045e41 /app | |
parent | d3b2049851c8dd242a6882ee23cf9cdf8944e5c9 (diff) | |
download | redmine-ab5e07e83ef2573ae32da1a7ada5398d03777932.tar.gz redmine-ab5e07e83ef2573ae32da1a7ada5398d03777932.zip |
Adds a setting to limit the number of revisions displayed on a repository file log (default=100).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2350 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/repositories_controller.rb | 2 | ||||
-rw-r--r-- | app/models/repository.rb | 7 | ||||
-rw-r--r-- | app/models/repository/git.rb | 5 | ||||
-rw-r--r-- | app/models/repository/subversion.rb | 4 | ||||
-rw-r--r-- | app/views/settings/_repositories.rhtml | 3 |
5 files changed, 13 insertions, 8 deletions
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 3cec2e8e5..a90b57c3d 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -88,7 +88,7 @@ class RepositoriesController < ApplicationController def changes @entry = @repository.entry(@path, @rev) show_error_not_found and return unless @entry - @changesets = @repository.changesets_for_path(@path) + @changesets = @repository.changesets_for_path(@path, :limit => Setting.repository_log_display_limit.to_i) @properties = @repository.properties(@path, @rev) end diff --git a/app/models/repository.rb b/app/models/repository.rb index 003f30552..920cf2460 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -76,11 +76,12 @@ class Repository < ActiveRecord::Base end # Default behaviour: we search in cached changesets - def changesets_for_path(path) + def changesets_for_path(path, options={}) path = "/#{path}" unless path.starts_with?('/') Change.find(:all, :include => {:changeset => :user}, - :conditions => ["repository_id = ? AND path = ?", id, path], - :order => "committed_on DESC, #{Changeset.table_name}.id DESC").collect(&:changeset) + :conditions => ["repository_id = ? AND path = ?", id, path], + :order => "committed_on DESC, #{Changeset.table_name}.id DESC", + :limit => options[:limit]).collect(&:changeset) end # Returns a path relative to the url of the repository diff --git a/app/models/repository/git.rb b/app/models/repository/git.rb index 41d4b6498..f721b938f 100644 --- a/app/models/repository/git.rb +++ b/app/models/repository/git.rb @@ -29,10 +29,11 @@ class Repository::Git < Repository 'Git' end - def changesets_for_path(path) + def changesets_for_path(path, options={}) Change.find(:all, :include => {:changeset => :user}, :conditions => ["repository_id = ? AND path = ?", id, path], - :order => "committed_on DESC, #{Changeset.table_name}.revision DESC").collect(&:changeset) + :order => "committed_on DESC, #{Changeset.table_name}.revision DESC", + :limit => options[:limit]).collect(&:changeset) end def fetch_changesets diff --git a/app/models/repository/subversion.rb b/app/models/repository/subversion.rb index 9515e6b76..a74589705 100644 --- a/app/models/repository/subversion.rb +++ b/app/models/repository/subversion.rb @@ -30,8 +30,8 @@ class Repository::Subversion < Repository 'Subversion' end - def changesets_for_path(path) - revisions = scm.revisions(path) + def changesets_for_path(path, options={}) + revisions = scm.revisions(path, nil, nil, :limit => options[:limit]) revisions ? changesets.find_all_by_revision(revisions.collect(&:identifier), :order => "committed_on DESC", :include => :user) : [] end diff --git a/app/views/settings/_repositories.rhtml b/app/views/settings/_repositories.rhtml index a8c924430..a20fc5131 100644 --- a/app/views/settings/_repositories.rhtml +++ b/app/views/settings/_repositories.rhtml @@ -19,6 +19,9 @@ <p><label><%= l(:setting_commit_logs_encoding) %></label> <%= select_tag 'settings[commit_logs_encoding]', options_for_select(Setting::ENCODINGS, Setting.commit_logs_encoding) %></p> + +<p><label><%= l(:setting_repository_log_display_limit) %></label> +<%= text_field_tag 'settings[repository_log_display_limit]', Setting.repository_log_display_limit, :size => 6 %></p> </div> <fieldset class="box tabular settings"><legend><%= l(:text_issues_ref_in_commit_messages) %></legend> |