Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2016-06-28 19:25:32 +0300
committerSean McGivern <sean@gitlab.com>2016-07-08 12:56:55 +0300
commitb6b26692ea44cfeab7e8fd64b7df60852850fce2 (patch)
tree3f54b14b7b8500d0182d7e5eca653b313eec17e2 /app/controllers/projects/compare_controller.rb
parent2c650b6f30d2e76cf632d6ce5771859aed67ac48 (diff)
Collapse large diffs by default
When rendering a list of diff files, skip those where the diff is over 10 KB and provide an endpoint to render individually instead.
Diffstat (limited to 'app/controllers/projects/compare_controller.rb')
-rw-r--r--app/controllers/projects/compare_controller.rb18
1 files changed, 17 insertions, 1 deletions
diff --git a/app/controllers/projects/compare_controller.rb b/app/controllers/projects/compare_controller.rb
index d240b9fe989..8a04f63f4d4 100644
--- a/app/controllers/projects/compare_controller.rb
+++ b/app/controllers/projects/compare_controller.rb
@@ -6,7 +6,7 @@ class Projects::CompareController < Projects::ApplicationController
# Authorize
before_action :require_non_empty_project
before_action :authorize_download_code!
- before_action :assign_ref_vars, only: [:index, :show]
+ before_action :assign_ref_vars, only: [:index, :show, :diff_for_path]
before_action :merge_request, only: [:index, :show]
def index
@@ -35,6 +35,22 @@ class Projects::CompareController < Projects::ApplicationController
end
end
+ def diff_for_path
+ compare = CompareService.new.
+ execute(@project, @head_ref, @project, @base_ref, diff_options)
+
+ return render_404 unless compare
+
+ @commit = @project.commit(@head_ref)
+ @base_commit = @project.merge_base_commit(@base_ref, @head_ref)
+ diffs = compare.diffs(diff_options.merge(paths: [params[:path]]))
+
+ @diff_notes_disabled = true
+ @grouped_diff_notes = {}
+
+ render_diff_for_path(diffs, [@base_commit, @commit], @project)
+ end
+
def create
redirect_to namespace_project_compare_path(@project.namespace, @project,
params[:from], params[:to])