summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorEric Eastwood <contact@ericeastwood.com>2017-09-29 14:13:35 -0500
committerEric Eastwood <contact@ericeastwood.com>2017-09-29 14:13:35 -0500
commit439e3f073591b41ef9926a4b8c33000ae1b068f7 (patch)
tree9ae497ed8747b398de6232dec8c6626726f6a5eb /app/models/merge_request.rb
parentdbfe8597419d409b10ce79daec7f5b39cfad492d (diff)
downloadgitlab-ce-439e3f073591b41ef9926a4b8c33000ae1b068f7.tar.gz
Port semi-linear merge strategy to CE (mostly FE)
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 8d9a30397a9..e85b83daf9e 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -524,6 +524,14 @@ class MergeRequest < ActiveRecord::Base
true
end
+ def ff_merge_possible?
+ project.repository.ancestor?(target_branch_sha, diff_head_sha)
+ end
+
+ def should_be_rebased?
+ project.ff_merge_must_be_possible? && !ff_merge_possible?
+ end
+
def can_cancel_merge_when_pipeline_succeeds?(current_user)
can_be_merged_by?(current_user) || self.author == current_user
end