Mercurial > hg > soundsoftware-site
diff app/controllers/repositories_controller.rb @ 119:8661b858af72
* Update to Redmine trunk rev 4705
author | Chris Cannam |
---|---|
date | Thu, 13 Jan 2011 14:12:06 +0000 |
parents | 513646585e45 |
children | cd2282d2aa55 07fa8a8b56a8 |
line wrap: on
line diff
--- a/app/controllers/repositories_controller.rb Fri Nov 19 14:05:24 2010 +0000 +++ b/app/controllers/repositories_controller.rb Thu Jan 13 14:12:06 2011 +0000 @@ -139,6 +139,7 @@ end def revision + raise ChangesetNotFound if @rev.nil? || @rev.empty? @changeset = @repository.find_changeset_by_name(@rev) raise ChangesetNotFound unless @changeset @@ -174,9 +175,13 @@ @diff = @repository.diff(@path, @rev, @rev_to) show_error_not_found unless @diff end + + @changeset = @repository.find_changeset_by_name(@rev) + @changeset_to = @rev_to ? @repository.find_changeset_by_name(@rev_to) : nil + @diff_format_revisions = @repository.diff_format_revisions(@changeset, @changeset_to) end end - + def stats end @@ -196,7 +201,10 @@ end end -private + private + + REV_PARAM_RE = %r{\A[a-f0-9]*\Z}i + def find_repository @project = Project.find(params[:id]) @repository = @project.repository @@ -205,6 +213,12 @@ @path ||= '' @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip @rev_to = params[:rev_to] + + unless @rev.to_s.match(REV_PARAM_RE) && @rev.to_s.match(REV_PARAM_RE) + if @repository.branches.blank? + raise InvalidRevisionParam + end + end rescue ActiveRecord::RecordNotFound render_404 rescue InvalidRevisionParam