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:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-07-01 18:24:03 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-07-01 18:24:03 +0300
commit2e6bbb12f86806ee13699f8cff03f13449105eb9 (patch)
treecdc959b40361be56eeac44b7ac19ef984fb7a62d /app/models
parent804168e1def1204af712febb229f41a3865f085f (diff)
Refactor can_be_merged logic for merge request
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/models')
-rw-r--r--app/models/merge_request.rb8
-rw-r--r--app/models/repository.rb9
2 files changed, 10 insertions, 7 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 040ab0f4b0f..53b3fc10ccb 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -209,13 +209,7 @@ class MergeRequest < ActiveRecord::Base
if for_fork?
Gitlab::Satellite::MergeAction.new(self.author, self).can_be_merged?
else
- 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
+ project.repository.can_be_merged?(source_branch, target_branch)
end
if can_be_merged
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 97d2aa1c89e..c767d1051d1 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -422,6 +422,15 @@ 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
+
private
def cache