From 6b9c730e91962a6d6343bcb7fc4dc75c99b41bde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20D=C3=A1vila?= Date: Thu, 14 Jan 2016 16:38:37 -0500 Subject: More refactoring from last code review. #3945 * Use commit objects instead of IDs when generating diffs * Use proper references when generating MR's source and target * Update broken specs --- app/models/merge_request.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index ac25d38eb63..fe87b820e98 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -511,4 +511,8 @@ class MergeRequest < ActiveRecord::Base def broken? self.commits.blank? || branch_missing? || cannot_be_merged? end + + def diff_range + [last_commit.parent, first_commit] + end end -- cgit v1.2.1 From c7264d2a76abdc9d173e2160e27974d41380e93f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20D=C3=A1vila?= Date: Tue, 19 Jan 2016 11:40:43 -0500 Subject: Check if MR is not broken. --- app/models/merge_request.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index a9fc6bc167a..9511521879b 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -254,7 +254,7 @@ class MergeRequest < ActiveRecord::Base end def mergeable? - return false unless open? && !work_in_progress? + return false unless open? && !work_in_progress? && !broken? check_if_can_be_merged -- cgit v1.2.1 From 987e3d94b017cb94f55cf47cdbb417c45adf0681 Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Wed, 20 Jan 2016 15:40:49 +0100 Subject: Fix MR diff_refs --- app/models/merge_request.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 9511521879b..0a890bbf6db 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -518,7 +518,7 @@ class MergeRequest < ActiveRecord::Base @ci_commit ||= source_project.ci_commit(last_commit.id) if last_commit && source_project end - def diff_range - [last_commit.parent, first_commit] + def diff_refs + [first_commit.parent || first_commit, last_commit] end end -- cgit v1.2.1 From 577f2fb47a7ef57415b78b49d5c746d4e99f6a98 Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Wed, 20 Jan 2016 18:44:27 +0100 Subject: Save and use actual diff base commit for MR diff highlighting --- app/models/merge_request.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 0a890bbf6db..41dd248d80a 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -180,6 +180,14 @@ class MergeRequest < ActiveRecord::Base merge_request_diff ? merge_request_diff.first_commit : compare_commits.first end + def diff_base_commit + if merge_request_diff + merge_request_diff.base_commit + else + self.target_project.commit(self.target_branch) + end + end + def last_commit_short_sha last_commit.short_id end @@ -477,8 +485,7 @@ class MergeRequest < ActiveRecord::Base end def target_sha - @target_sha ||= target_project. - repository.commit(target_branch).sha + @target_sha ||= target_project.repository.commit(target_branch).sha end def source_sha @@ -519,6 +526,8 @@ class MergeRequest < ActiveRecord::Base end def diff_refs - [first_commit.parent || first_commit, last_commit] + return nil unless diff_base_commit + + [diff_base_commit, last_commit] end end -- cgit v1.2.1