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
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user