From 5bdcdf56168026134282b1434e716bcf35beaa2c Mon Sep 17 00:00:00 2001 From: Valery Sizov Date: Mon, 10 Aug 2015 19:55:03 +0300 Subject: [PATCH] Fast blame --- app/controllers/projects/blame_controller.rb | 2 +- app/views/projects/blame/show.html.haml | 27 ++++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/app/controllers/projects/blame_controller.rb b/app/controllers/projects/blame_controller.rb index 3362264dcce..45e157c90cb 100644 --- a/app/controllers/projects/blame_controller.rb +++ b/app/controllers/projects/blame_controller.rb @@ -7,7 +7,7 @@ class Projects::BlameController < Projects::ApplicationController before_action :authorize_download_code! def show + @blob = @repository.blob_at(@commit.id, @path) @blame = Gitlab::Git::Blame.new(@repository, @commit.id, @path) - @blob = @blame.blob end end diff --git a/app/views/projects/blame/show.html.haml b/app/views/projects/blame/show.html.haml index 8019c7f4569..1705bda3074 100644 --- a/app/views/projects/blame/show.html.haml +++ b/app/views/projects/blame/show.html.haml @@ -12,25 +12,26 @@ = render "projects/blob/actions" .file-content.blame.highlight %table - - @blame.each do |commit, lines, since| - - commit = Commit.new(commit, @project) + - current_line = 1 + - @blame.each do |raw_commit, line| %tr %td.blame-commit %span.commit - = link_to commit.short_id, namespace_project_commit_path(@project.namespace, @project, commit), class: "commit_short_id" -   - = commit_author_link(commit, avatar: true, size: 16) -   - = link_to_gfm truncate(commit.title, length: 20), namespace_project_commit_path(@project.namespace, @project, commit.id), class: "row_title" + - unless @prev_commit && @prev_commit.sha == raw_commit.sha + - commit = Commit.new(raw_commit, @project) + = link_to commit.short_id, namespace_project_commit_path(@project.namespace, @project, commit), class: "commit_short_id" +   + = commit_author_link(commit, avatar: true, size: 16) +   + = link_to_gfm truncate(commit.title, length: 20), namespace_project_commit_path(@project.namespace, @project, commit.id), class: "row_title" + - @prev_commit = raw_commit %td.lines.blame-numbers %pre - - (since...(since + lines.count)).each do |i| - = i - \ + = current_line + - current_line += 1 %td.lines %pre{class: 'code highlight white'} %code :erb - <% lines.each do |line| %> - <%= highlight(@blob.name, line, nowrap: true, continue: true).html_safe %> - <% end %> + <%= highlight(@blob.name, line, nowrap: true, continue: true).html_safe %> + \ No newline at end of file -- GitLab