_diffs.html.haml 1.91 KB
- if @suppress_diff
  .alert-message.block-message
    %p
      %strong Warning! Large commit with more then 200 files changed.
    %p To prevent performance issue we rejected diff information.
    %p
      But if you still want to see diff
      = link_to "click this link", project_commit_path(@project, @commit, force_show_diff: true), class: "dark"

%p.cgray
  Showing #{pluralize(diffs.count, "changed file")}
.file_stats
  = render "commits/diff_head", diffs: diffs

- unless @suppress_diff
  - diffs.each_with_index do |diff, i|
    - next if diff.diff.empty?
    - file = (@commit.tree / diff.new_path)
    - file = (@commit.prev_commit.tree / diff.old_path) unless file
    - next unless file
    .diff_file
      .diff_file_header
        - if diff.deleted_file
          %i.icon-file
          %span{id: "#{diff.old_path}"}= diff.old_path
        - else
          = link_to project_tree_path(@project, tree_join(@commit.id, diff.new_path)) do
            %i.icon-file
            %span{id: "#{diff.new_path}"}= diff.new_path
        %br/
      .diff_file_content
        -# Skipp all non non-supported blobs
        - next unless file.respond_to?('text?')

        - if file.text?
          = render "commits/text_file", diff: diff, index: i
        - elsif file.image?
          - if diff.renamed_file || diff.new_file || diff.deleted_file 
            .diff_file_content_image
              %img{class: image_diff_class(diff), src: "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}
          - else 
            - old_file = (@commit.prev_commit.tree / diff.old_path)
            .diff_file_content_image.img_compared
              %img{class: "diff_image_removed", src: "data:#{file.mime_type};base64,#{Base64.encode64(old_file.data)}"}
              %img{class: "diff_image_added", src: "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}
        - else
          %p.nothing_here_message No preview for this file type