summaryrefslogtreecommitdiff
path: root/app/models/project.rb
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-10-03 08:24:31 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-10-03 08:24:31 +0000
commit0ac06c89e9cfc0fc8044b645294242d66af36150 (patch)
treecf72e186622982907975f06fc588c0542a56c35c /app/models/project.rb
parent75f257ad57d29955fc25c49b39fb1833f7dd3c75 (diff)
parente559b8511b2817b9c57a5190ff9ed95c739528bf (diff)
downloadgitlab-ce-0ac06c89e9cfc0fc8044b645294242d66af36150.tar.gz
Merge branch 'ff_port_from_ee' into 'master'
Move Fast-Forward Merge to CE See merge request gitlab-org/gitlab-ce!14272
Diffstat (limited to 'app/models/project.rb')
-rw-r--r--app/models/project.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 44d1190cc5b..952e9e22b28 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1566,6 +1566,34 @@ class Project < ActiveRecord::Base
persisted? && path_changed?
end
+ def merge_method
+ if self.merge_requests_ff_only_enabled
+ :ff
+ elsif self.merge_requests_rebase_enabled
+ :rebase_merge
+ else
+ :merge
+ end
+ end
+
+ def merge_method=(method)
+ case method.to_s
+ when "ff"
+ self.merge_requests_ff_only_enabled = true
+ self.merge_requests_rebase_enabled = true
+ when "rebase_merge"
+ self.merge_requests_ff_only_enabled = false
+ self.merge_requests_rebase_enabled = true
+ when "merge"
+ self.merge_requests_ff_only_enabled = false
+ self.merge_requests_rebase_enabled = false
+ end
+ end
+
+ def ff_merge_must_be_possible?
+ self.merge_requests_ff_only_enabled || self.merge_requests_rebase_enabled
+ end
+
def migrate_to_hashed_storage!
return if hashed_storage?