Commit 5bdcdf56 authored by Valery Sizov's avatar Valery Sizov

Fast blame

parent ce30eb2b
...@@ -7,7 +7,7 @@ class Projects::BlameController < Projects::ApplicationController ...@@ -7,7 +7,7 @@ class Projects::BlameController < Projects::ApplicationController
before_action :authorize_download_code! before_action :authorize_download_code!
def show def show
@blob = @repository.blob_at(@commit.id, @path)
@blame = Gitlab::Git::Blame.new(@repository, @commit.id, @path) @blame = Gitlab::Git::Blame.new(@repository, @commit.id, @path)
@blob = @blame.blob
end end
end end
...@@ -12,25 +12,26 @@ ...@@ -12,25 +12,26 @@
= render "projects/blob/actions" = render "projects/blob/actions"
.file-content.blame.highlight .file-content.blame.highlight
%table %table
- @blame.each do |commit, lines, since| - current_line = 1
- commit = Commit.new(commit, @project) - @blame.each do |raw_commit, line|
%tr %tr
%td.blame-commit %td.blame-commit
%span.commit %span.commit
= link_to commit.short_id, namespace_project_commit_path(@project.namespace, @project, commit), class: "commit_short_id" - unless @prev_commit && @prev_commit.sha == raw_commit.sha
&nbsp; - commit = Commit.new(raw_commit, @project)
= commit_author_link(commit, avatar: true, size: 16) = link_to commit.short_id, namespace_project_commit_path(@project.namespace, @project, commit), class: "commit_short_id"
&nbsp; &nbsp;
= link_to_gfm truncate(commit.title, length: 20), namespace_project_commit_path(@project.namespace, @project, commit.id), class: "row_title" = commit_author_link(commit, avatar: true, size: 16)
&nbsp;
= 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 %td.lines.blame-numbers
%pre %pre
- (since...(since + lines.count)).each do |i| = current_line
= i - current_line += 1
\
%td.lines %td.lines
%pre{class: 'code highlight white'} %pre{class: 'code highlight white'}
%code %code
:erb :erb
<% lines.each do |line| %> <%= highlight(@blob.name, line, nowrap: true, continue: true).html_safe %>
<%= highlight(@blob.name, line, nowrap: true, continue: true).html_safe %>
<% end %> \ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment