Show explicit error message when the scm command failed (eg. when svn binary is not available).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1094 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2008-01-23 17:25:11 +00:00
parent 97e7432ce6
commit 91dc13f4b2
26 changed files with 90 additions and 27 deletions
+5
View File
@@ -137,6 +137,11 @@ class ApplicationController < ActionController::Base
return false
end
def render_error(msg)
flash.now[:error] = msg
render :nothing => true, :layout => !request.xhr?, :status => 500
end
def render_feed(items, options={})
@items = items || []
@items.sort! {|x,y| y.event_datetime <=> x.event_datetime }
+20 -3
View File
@@ -56,6 +56,8 @@ class RepositoriesController < ApplicationController
# latest changesets
@changesets = @repository.changesets.find(:all, :limit => 10, :order => "committed_on DESC")
show_error and return unless @entries || @changesets.any?
rescue Redmine::Scm::Adapters::CommandFailed => e
show_error_command_failed(e.message)
end
def browse
@@ -65,12 +67,16 @@ class RepositoriesController < ApplicationController
else
show_error unless @entries
end
rescue Redmine::Scm::Adapters::CommandFailed => e
show_error_command_failed(e.message)
end
def changes
@entry = @repository.scm.entry(@path, @rev)
show_error and return unless @entry
@changesets = @repository.changesets_for_path(@path)
rescue Redmine::Scm::Adapters::CommandFailed => e
show_error_command_failed(e.message)
end
def revisions
@@ -97,11 +103,15 @@ class RepositoriesController < ApplicationController
# Prevent empty lines when displaying a file with Windows style eol
@content.gsub!("\r\n", "\n")
end
rescue Redmine::Scm::Adapters::CommandFailed => e
show_error_command_failed(e.message)
end
def annotate
@annotate = @repository.scm.annotate(@path, @rev)
show_error and return if @annotate.nil? || @annotate.empty?
rescue Redmine::Scm::Adapters::CommandFailed => e
show_error_command_failed(e.message)
end
def revision
@@ -119,6 +129,8 @@ class RepositoriesController < ApplicationController
end
rescue ChangesetNotFound
show_error
rescue Redmine::Scm::Adapters::CommandFailed => e
show_error_command_failed(e.message)
end
def diff
@@ -137,6 +149,8 @@ class RepositoriesController < ApplicationController
@diff = @repository.diff(@path, @rev, @rev_to, @diff_type)
show_error and return unless @diff
end
rescue Redmine::Scm::Adapters::CommandFailed => e
show_error_command_failed(e.message)
end
def stats
@@ -176,9 +190,12 @@ private
render_404
end
def show_error
flash.now[:error] = l(:notice_scm_error)
render :nothing => true, :layout => true
def show_error_not_found
render_error l(:error_scm_not_found)
end
def show_error_command_failed(msg)
render_error l(:error_scm_command_failed, msg)
end
def graph_commits_per_month(repository)