Mercurial > hg > soundsoftware-site
comparison app/controllers/.svn/text-base/repositories_controller.rb.svn-base @ 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 |
comparison
equal
deleted
inserted
replaced
39:150ceac17a8d | 119:8661b858af72 |
---|---|
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 |
177 end | 178 |
178 end | 179 @changeset = @repository.find_changeset_by_name(@rev) |
179 | 180 @changeset_to = @rev_to ? @repository.find_changeset_by_name(@rev_to) : nil |
181 @diff_format_revisions = @repository.diff_format_revisions(@changeset, @changeset_to) | |
182 end | |
183 end | |
184 | |
180 def stats | 185 def stats |
181 end | 186 end |
182 | 187 |
183 def graph | 188 def graph |
184 data = nil | 189 data = nil |
194 else | 199 else |
195 render_404 | 200 render_404 |
196 end | 201 end |
197 end | 202 end |
198 | 203 |
199 private | 204 private |
205 | |
206 REV_PARAM_RE = %r{\A[a-f0-9]*\Z}i | |
207 | |
200 def find_repository | 208 def find_repository |
201 @project = Project.find(params[:id]) | 209 @project = Project.find(params[:id]) |
202 @repository = @project.repository | 210 @repository = @project.repository |
203 (render_404; return false) unless @repository | 211 (render_404; return false) unless @repository |
204 @path = params[:path].join('/') unless params[:path].nil? | 212 @path = params[:path].join('/') unless params[:path].nil? |
205 @path ||= '' | 213 @path ||= '' |
206 @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip | 214 @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip |
207 @rev_to = params[:rev_to] | 215 @rev_to = params[:rev_to] |
216 | |
217 unless @rev.to_s.match(REV_PARAM_RE) && @rev.to_s.match(REV_PARAM_RE) | |
218 if @repository.branches.blank? | |
219 raise InvalidRevisionParam | |
220 end | |
221 end | |
208 rescue ActiveRecord::RecordNotFound | 222 rescue ActiveRecord::RecordNotFound |
209 render_404 | 223 render_404 |
210 rescue InvalidRevisionParam | 224 rescue InvalidRevisionParam |
211 show_error_not_found | 225 show_error_not_found |
212 end | 226 end |