Mercurial > hg > soundsoftware-site
comparison app/controllers/.svn/text-base/repositories_controller.rb.svn-base @ 117:af80e5618e9b redmine-1.1
* Update to Redmine 1.1-stable branch (Redmine SVN rev 4707)
author | Chris Cannam |
---|---|
date | Thu, 13 Jan 2011 12:53:21 +0000 |
parents | 513646585e45 |
children | cd2282d2aa55 |
comparison
equal
deleted
inserted
replaced
39:150ceac17a8d | 117:af80e5618e9b |
---|---|
137 @annotate = @repository.scm.annotate(@path, @rev) | 137 @annotate = @repository.scm.annotate(@path, @rev) |
138 (render_error l(:error_scm_annotate); return) if @annotate.nil? || @annotate.empty? | 138 (render_error l(:error_scm_annotate); return) if @annotate.nil? || @annotate.empty? |
139 end | 139 end |
140 | 140 |
141 def revision | 141 def revision |
142 raise ChangesetNotFound if @rev.nil? || @rev.empty? | |
142 @changeset = @repository.find_changeset_by_name(@rev) | 143 @changeset = @repository.find_changeset_by_name(@rev) |
143 raise ChangesetNotFound unless @changeset | 144 raise ChangesetNotFound unless @changeset |
144 | 145 |
145 respond_to do |format| | 146 respond_to do |format| |
146 format.html | 147 format.html |
172 @cache_key = "repositories/diff/#{@repository.id}/" + Digest::MD5.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}") | 173 @cache_key = "repositories/diff/#{@repository.id}/" + Digest::MD5.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}") |
173 unless read_fragment(@cache_key) | 174 unless read_fragment(@cache_key) |
174 @diff = @repository.diff(@path, @rev, @rev_to) | 175 @diff = @repository.diff(@path, @rev, @rev_to) |
175 show_error_not_found unless @diff | 176 show_error_not_found unless @diff |
176 end | 177 end |
178 | |
179 @changeset = @repository.find_changeset_by_name(@rev) | |
180 @changeset_to = @rev_to ? @repository.find_changeset_by_name(@rev_to) : nil | |
177 end | 181 end |
178 end | 182 end |
179 | 183 |
180 def stats | 184 def stats |
181 end | 185 end |
194 else | 198 else |
195 render_404 | 199 render_404 |
196 end | 200 end |
197 end | 201 end |
198 | 202 |
199 private | 203 private |
204 | |
205 REV_PARAM_RE = %r{\A[a-f0-9]*\Z}i | |
206 | |
200 def find_repository | 207 def find_repository |
201 @project = Project.find(params[:id]) | 208 @project = Project.find(params[:id]) |
202 @repository = @project.repository | 209 @repository = @project.repository |
203 (render_404; return false) unless @repository | 210 (render_404; return false) unless @repository |
204 @path = params[:path].join('/') unless params[:path].nil? | 211 @path = params[:path].join('/') unless params[:path].nil? |
205 @path ||= '' | 212 @path ||= '' |
206 @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip | 213 @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip |
207 @rev_to = params[:rev_to] | 214 @rev_to = params[:rev_to] |
215 | |
216 unless @rev.to_s.match(REV_PARAM_RE) && @rev.to_s.match(REV_PARAM_RE) | |
217 if @repository.branches.blank? | |
218 raise InvalidRevisionParam | |
219 end | |
220 end | |
208 rescue ActiveRecord::RecordNotFound | 221 rescue ActiveRecord::RecordNotFound |
209 render_404 | 222 render_404 |
210 rescue InvalidRevisionParam | 223 rescue InvalidRevisionParam |
211 show_error_not_found | 224 show_error_not_found |
212 end | 225 end |