From 8ee3c28bcde45e0719e0ef76731b9c92edfcddd9 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Mon, 11 Jul 2016 18:17:00 +0100 Subject: Handle more than two paths in MergeRequest#diffs --- app/controllers/concerns/diff_for_path.rb | 4 +++- app/models/merge_request_diff.rb | 5 ++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/concerns/diff_for_path.rb b/app/controllers/concerns/diff_for_path.rb index 5ca8d3af0c9..e09b8789eb2 100644 --- a/app/controllers/concerns/diff_for_path.rb +++ b/app/controllers/concerns/diff_for_path.rb @@ -2,7 +2,9 @@ module DiffForPath extend ActiveSupport::Concern def render_diff_for_path(diffs, diff_refs, project) - diff_file = safe_diff_files(diffs, diff_refs: diff_refs, repository: project.repository).first + diff_file = safe_diff_files(diffs, diff_refs: diff_refs, repository: project.repository).find do |diff| + diff.old_path == params[:old_path] && diff.new_path == params[:new_path] + end return render_404 unless diff_file diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index d54369c3483..feaba925bad 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -145,10 +145,9 @@ class MergeRequestDiff < ActiveRecord::Base def load_diffs(raw, options) if raw.respond_to?(:each) - if options[:paths] - old_path, new_path = options[:paths] + if paths = options[:paths] raw = raw.select do |diff| - old_path == diff[:old_path] && new_path == diff[:new_path] + paths.include?(diff[:old_path]) || paths.include?(diff[:new_path]) end end -- cgit v1.2.1