From: Jean-Philippe Lang Date: Sun, 12 May 2013 10:05:35 +0000 (+0000) Subject: Disable autofetching of repository changesets if projects are closed (#13945). X-Git-Tag: 2.4.0~365 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0dce4761a868eafaf216bf83e41860bf841926d8;p=redmine.git Disable autofetching of repository changesets if projects are closed (#13945). Patch by Mischa The Evil. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11838 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 2912b72bf..77b74bfe3 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -111,7 +111,7 @@ class RepositoriesController < ApplicationController end def show - @repository.fetch_changesets if Setting.autofetch_changesets? && @path.empty? + @repository.fetch_changesets if @project.active? && Setting.autofetch_changesets? && @path.empty? @entries = @repository.entries(@path, @rev) @changeset = @repository.find_changeset_by_name(@rev) diff --git a/test/functional/repositories_controller_test.rb b/test/functional/repositories_controller_test.rb index 315090c59..2231e3134 100644 --- a/test/functional/repositories_controller_test.rb +++ b/test/functional/repositories_controller_test.rb @@ -111,6 +111,31 @@ class RepositoriesControllerTest < ActionController::TestCase assert_nil Repository.find_by_id(11) end + def test_show_with_autofetch_changesets_enabled_should_fetch_changesets + Repository::Subversion.any_instance.expects(:fetch_changesets).once + + with_settings :autofetch_changesets => '1' do + get :show, :id => 1 + end + end + + def test_show_with_autofetch_changesets_disabled_should_not_fetch_changesets + Repository::Subversion.any_instance.expects(:fetch_changesets).never + + with_settings :autofetch_changesets => '0' do + get :show, :id => 1 + end + end + + def test_show_with_closed_project_should_not_fetch_changesets + Repository::Subversion.any_instance.expects(:fetch_changesets).never + Project.find(1).close + + with_settings :autofetch_changesets => '1' do + get :show, :id => 1 + end + end + def test_revisions get :revisions, :id => 1 assert_response :success