From 6f7a3ee69457c89d8b774fd65bdc4da756cc27c3 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 7 Sep 2016 10:16:21 +0300 Subject: [PATCH] Refactor merge request version compare feature Signed-off-by: Dmitriy Zaporozhets --- app/controllers/projects/merge_requests_controller.rb | 8 ++------ app/models/merge_request_diff.rb | 4 ++++ .../projects/merge_requests/show/_versions.html.haml | 8 +++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index b86915e8470..39dec5223df 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -542,7 +542,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def compared_diff_version - compare = CompareService.new.execute(@project, @merge_request_diff.head_commit_sha, @project, @start_sha) + compare = @merge_request_diff.compare_with(@start_sha) if compare @diffs = compare.diffs(diff_options) @@ -551,11 +551,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def original_diff_version - unless @merge_request_diff.latest? - # Disable comments if browsing older version of the diff - @diff_notes_disabled = true - end - + @diff_notes_disabled = !@merge_request_diff.latest? @diffs = @merge_request_diff.diffs(diff_options) end end diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index 445179a4487..18c583add88 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -152,6 +152,10 @@ class MergeRequestDiff < ActiveRecord::Base self == merge_request.merge_request_diff end + def compare_with(sha) + CompareService.new.execute(project, head_commit_sha, project, sha) + end + private def dump_commits(commits) diff --git a/app/views/projects/merge_requests/show/_versions.html.haml b/app/views/projects/merge_requests/show/_versions.html.haml index e8cb7f92c23..00287f2d245 100644 --- a/app/views/projects/merge_requests/show/_versions.html.haml +++ b/app/views/projects/merge_requests/show/_versions.html.haml @@ -24,7 +24,7 @@ = time_ago_with_tooltip(merge_request_diff.created_at) - if @merge_request_diff.base_commit_sha -  and  + and %span.dropdown.inline.mr-version-compare-dropdown %a.btn-link.dropdown-toggle{ data: {toggle: :dropdown} } %strong @@ -51,8 +51,10 @@ #{@merge_request.target_branch} (base) .monospace #{short_sha(@merge_request_diff.base_commit_sha)} - - unless @merge_request_diff.latest? && !@start_sha .prepend-top-10 = icon('info-circle') - Comments are disabled while viewing outdated merge versions or comparing to versions other than base. + - if @start_sha + Comments are disabled because you're comparing two versions of this merge request. + - else + Comments are disabled because you're viewing an old version of this merge request. -- GitLab