diff options
-rw-r--r-- | app/models/merge_request.rb | 8 | ||||
-rw-r--r-- | app/models/repository.rb | 9 | ||||
-rw-r--r-- | spec/models/repository_spec.rb | 14 |
3 files changed, 7 insertions, 24 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 1ef76d16700..5a48fe66281 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -209,7 +209,13 @@ class MergeRequest < ActiveRecord::Base if for_fork? Gitlab::Satellite::MergeAction.new(self.author, self).can_be_merged? else - project.repository.can_be_merged?(source_branch, target_branch) + rugged = project.repository.rugged + our_commit = rugged.branches[target_branch].target + their_commit = rugged.branches[source_branch].target + + if our_commit && their_commit + !rugged.merge_commits(our_commit, their_commit).conflicts? + end end if can_be_merged diff --git a/app/models/repository.rb b/app/models/repository.rb index 807b33b2a3e..638e278b49e 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -411,15 +411,6 @@ class Repository } end - def can_be_merged?(source_branch, target_branch) - our_commit = rugged.branches[target_branch].target - their_commit = rugged.branches[source_branch].target - - if our_commit && their_commit - !rugged.merge_commits(our_commit, their_commit).conflicts? - end - end - def search_files(query, ref) offset = 2 args = %W(git grep -i -n --before-context #{offset} --after-context #{offset} #{query} #{ref || root_ref}) diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index d25351b0f0e..0927cde61a6 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -34,20 +34,6 @@ describe Repository do end end - describe :can_be_merged? do - context 'mergeable branches' do - subject { repository.can_be_merged?('feature', 'master') } - - it { is_expected.to be_truthy } - end - - context 'non-mergeable branches' do - subject { repository.can_be_merged?('feature_conflict', 'feature') } - - it { is_expected.to be_falsey } - end - end - describe "search_files" do let(:results) { repository.search_files('feature', 'master') } subject { results } |