0001-Fix-for-expensive-annotations.patch

Patch which limits 'annotate' to text files under the global size limit for viewing files directly - Antonio García-Domínguez, 2011-10-28 02:07

Download (4.1 KB)

View differences:

app/controllers/repositories_controller.rb
171 171
    @entry = @repository.entry(@path, @rev)
172 172
    (show_error_not_found; return) unless @entry
173 173

  
174
    @annotate = @repository.scm.annotate(@path, @rev)
175
    (render_error l(:error_scm_annotate); return) if @annotate.nil? || @annotate.empty?
176
    @changeset = @repository.find_changeset_by_name(@rev)
174
    @content = @repository.cat(@path, @rev)
175
    (show_error_not_found; return) unless @content
176
    if (@content.size && @content.size > Setting.file_max_size_displayed.to_i.kilobyte) ||
177
         ! is_entry_text_data?(@content, @path)
178
      render_error :message => l(:error_scm_annotate_bad_file)
179
    else
180
      @annotate = @repository.scm.annotate(@path, @rev)
181
      (render_error l(:error_scm_annotate); return) if @annotate.nil? || @annotate.empty?
182
      @changeset = @repository.find_changeset_by_name(@rev)
183
    end
177 184
  end
178 185

  
179 186
  def revision
config/locales/en-GB.yml
180 180
  error_scm_not_found: "The entry or revision was not found in the repository."
181 181
  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
182 182
  error_scm_annotate: "The entry does not exist or cannot be annotated."
183
  error_scm_annotate_bad_file: "The entry exceeds the maximum text file size or is not a text file."
183 184
  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
184 185
  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
185 186
  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
config/locales/en.yml
176 176
  error_scm_not_found: "The entry or revision was not found in the repository."
177 177
  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
178 178
  error_scm_annotate: "The entry does not exist or cannot be annotated."
179
  error_scm_annotate_bad_file: "The entry exceeds the maximum text file size or is not a text file."
179 180
  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
180 181
  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
181 182
  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
config/locales/es.yml
245 245
  error_can_t_load_default_data: "No se ha podido cargar la configuración por defecto: %{value}"
246 246
  error_issue_not_found_in_project: 'La petición no se encuentra o no está asociada a este proyecto'
247 247
  error_scm_annotate: "No existe la entrada o no ha podido ser anotada"
248
  error_scm_annotate_bad_file: "La entrada supera el tamaño máximo para ficheros de texto o no es un fichero de texto."
248 249
  error_scm_command_failed: "Se produjo un error al acceder al repositorio: %{value}"
249 250
  error_scm_not_found: "La entrada y/o la revisión no existe en el repositorio."
250 251
  field_account: Cuenta
251
-