mirror of
https://github.com/meineerde/redmine.git
synced 2026-02-01 03:57:15 +00:00
Allow manually fetching changesets (#8875).
Patch by Yuichi HARADA. git-svn-id: http://svn.redmine.org/redmine/trunk@20772 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
34310eece6
commit
4dfa6fc724
@ -100,6 +100,11 @@ class RepositoriesController < ApplicationController
|
||||
|
||||
alias_method :browse, :show
|
||||
|
||||
def fetch_changesets
|
||||
@repository.fetch_changesets if @project.active? && @path.empty? && !Setting.autofetch_changesets?
|
||||
show
|
||||
end
|
||||
|
||||
def changes
|
||||
@entry = @repository.entry(@path, @rev)
|
||||
(show_error_not_found; return) unless @entry
|
||||
|
||||
@ -19,6 +19,9 @@
|
||||
<%= link_to_if_authorized l(:label_settings),
|
||||
{:controller => 'projects', :action => 'settings', :id => @project, :tab => 'repositories'},
|
||||
:class => 'icon icon-settings' if User.current.allowed_to?(:manage_repository, @project) %>
|
||||
<%= link_to l(:button_fetch_changesets),
|
||||
{:action => :fetch_changesets, :id => @project, :repository_id => @repository.identifier_param},
|
||||
:class => 'icon icon-reload', :method => :post if User.current.allowed_to?(:manage_repository, @project) && !Setting.autofetch_changesets? %>
|
||||
<% end %>
|
||||
|
||||
<%= form_tag({:action => controller.action_name,
|
||||
|
||||
@ -1146,6 +1146,7 @@ en:
|
||||
button_copy: Copy
|
||||
button_copy_and_follow: Copy and follow
|
||||
button_annotate: Annotate
|
||||
button_fetch_changesets: Fetch commits
|
||||
button_update: Update
|
||||
button_configure: Configure
|
||||
button_quote: Quote
|
||||
|
||||
@ -268,6 +268,7 @@ Rails.application.routes.draw do
|
||||
# repositories routes
|
||||
get 'projects/:id/repository/:repository_id/statistics', :to => 'repositories#stats'
|
||||
get 'projects/:id/repository/:repository_id/graph', :to => 'repositories#graph'
|
||||
post 'projects/:id/repository/:repository_id/fetch_changesets', :to => 'repositories#fetch_changesets'
|
||||
|
||||
get 'projects/:id/repository/:repository_id/revisions/:rev', :to => 'repositories#revision'
|
||||
get 'projects/:id/repository/:repository_id/revision', :to => 'repositories#revision'
|
||||
|
||||
@ -178,7 +178,7 @@ Redmine::AccessControl.map do |map|
|
||||
map.permission :browse_repository, {:repositories => [:show, :browse, :entry, :raw, :annotate, :changes, :diff, :stats, :graph]}, :read => true
|
||||
map.permission :commit_access, {}
|
||||
map.permission :manage_related_issues, {:repositories => [:add_related_issue, :remove_related_issue]}
|
||||
map.permission :manage_repository, {:projects => :settings, :repositories => [:new, :create, :edit, :update, :committers, :destroy]}, :require => :member
|
||||
map.permission :manage_repository, {:projects => :settings, :repositories => [:new, :create, :edit, :update, :committers, :destroy, :fetch_changesets]}, :require => :member
|
||||
end
|
||||
|
||||
map.project_module :boards do |map|
|
||||
|
||||
@ -203,6 +203,23 @@ class RepositoriesControllerTest < Redmine::RepositoryControllerTest
|
||||
assert_response :success
|
||||
assert_select 'input[value="View differences"]', :count => 0
|
||||
end
|
||||
|
||||
def test_fetch_changesets
|
||||
@request.session[:user_id] = 2
|
||||
role = Role.find(1)
|
||||
|
||||
with_settings :autofetch_changesets => '0' do
|
||||
role.add_permission! :manage_repository
|
||||
Repository::Subversion.any_instance.expects(:fetch_changesets).once
|
||||
post(:fetch_changesets, :params => {:id => 1, :repository_id => 10})
|
||||
assert_response :success
|
||||
|
||||
role.remove_permission! :manage_repository
|
||||
Repository::Subversion.any_instance.expects(:fetch_changesets).never
|
||||
post(:fetch_changesets, :params => {:id => 1, :repository_id => 10})
|
||||
assert_response :forbidden
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_revisions
|
||||
|
||||
@ -70,6 +70,10 @@ class RoutingRepositoriesTest < Redmine::RoutingTest
|
||||
end
|
||||
end
|
||||
|
||||
def test_repositories_fetch_changesets_with_repository_id
|
||||
should_route 'POST /projects/foo/repository/bar/fetch_changesets' => 'repositories#fetch_changesets', :id => 'foo', :repository_id => 'bar'
|
||||
end
|
||||
|
||||
def test_repositories_non_revisions_path_with_repository_id
|
||||
should_route 'GET /projects/foo/repository/svn/changes' => 'repositories#changes', :id => 'foo', :repository_id => 'svn', :format => 'html'
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user