summaryrefslogtreecommitdiff
path: root/app/controllers/projects/commit_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/projects/commit_controller.rb')
-rw-r--r--app/controllers/projects/commit_controller.rb20
1 files changed, 19 insertions, 1 deletions
diff --git a/app/controllers/projects/commit_controller.rb b/app/controllers/projects/commit_controller.rb
index 37d6521026c..810653b4264 100644
--- a/app/controllers/projects/commit_controller.rb
+++ b/app/controllers/projects/commit_controller.rb
@@ -19,7 +19,7 @@ class Projects::CommitController < Projects::ApplicationController
@grouped_diff_notes = commit.notes.grouped_diff_notes
@notes = commit.notes.non_diff_notes.fresh
-
+
Banzai::NoteRenderer.render(
@grouped_diff_notes.values.flatten + @notes,
@project,
@@ -41,6 +41,24 @@ class Projects::CommitController < Projects::ApplicationController
end
end
+ def diff_for_path
+ return git_not_found! unless commit
+
+ opts = diff_options
+ opts[:ignore_whitespace_change] = true if params[:format] == 'diff'
+
+ diffs = commit.diffs(opts.merge(paths: [params[:path]]))
+ diff_refs = [commit.parent || commit, commit]
+
+ @comments_target = {
+ noteable_type: 'Commit',
+ commit_id: @commit.id
+ }
+ @grouped_diff_notes = {}
+
+ render_diff_for_path(diffs, diff_refs, @project)
+ end
+
def builds
end