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-08-11 11:50:39 +0300
committerValery Sizov <vsv2711@gmail.com>2015-08-12 13:48:47 +0300
commit2258572b80bf9b07ffb4795639b489e7f7f346e7 (patch)
tree86f0f8b38aa3326629285d2f1a4ebeece53ec168
parent9a1ad8deec9cf1c3d35c85f599c041f581a7b782 (diff)
Revert "Merge branches inside one repository using rugged instead of satellites"
This reverts commit d24c40ec219d76e01e2fab5f6ebf431adae91bdd.
-rw-r--r--app/models/merge_request.rb15
-rw-r--r--app/models/repository.rb2
-rw-r--r--app/services/merge_requests/auto_merge_service.rb51
3 files changed, 6 insertions, 62 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 5a48fe66281..324d1795ab4 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -205,20 +205,7 @@ class MergeRequest < ActiveRecord::Base
end
def check_if_can_be_merged
- can_be_merged =
- 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
- end
-
- if can_be_merged
+ if Gitlab::Satellite::MergeAction.new(self.author, self).can_be_merged?
mark_as_mergeable
else
mark_as_unmergeable
diff --git a/app/models/repository.rb b/app/models/repository.rb
index dae19b9ddca..29bccbbaf58 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -403,6 +403,8 @@ class Repository
Gitlab::Git::Blob.remove(raw_repository, options)
end
+ private
+
def user_to_comitter(user)
{
email: user.email,
diff --git a/app/services/merge_requests/auto_merge_service.rb b/app/services/merge_requests/auto_merge_service.rb
index db824d452d0..cdedf48b0c0 100644
--- a/app/services/merge_requests/auto_merge_service.rb
+++ b/app/services/merge_requests/auto_merge_service.rb
@@ -5,20 +5,17 @@ module MergeRequests
# mark merge request as merged and execute all hooks and notifications
# Called when you do merge via GitLab UI
class AutoMergeService < BaseMergeService
- attr_reader :merge_request, :commit_message
-
def execute(merge_request, commit_message)
- @commit_message = commit_message
- @merge_request = merge_request
-
merge_request.lock_mr
- if merge!
+ if Gitlab::Satellite::MergeAction.new(current_user, merge_request).merge!(commit_message)
merge_request.merge
+
create_merge_event(merge_request, current_user)
create_note(merge_request)
notification_service.merge_mr(merge_request, current_user)
execute_hooks(merge_request, 'merge')
+
true
else
merge_request.unlock_mr
@@ -29,47 +26,5 @@ module MergeRequests
merge_request.mark_as_unmergeable
false
end
-
- def merge!
- if merge_request.for_fork?
- Gitlab::Satellite::MergeAction.new(current_user, merge_request).merge!(commit_message)
- else
- # Merge local branches using rugged instead of satellites
- if sha = commit
- after_commit(sha, merge_request.target_branch)
-
- if merge_request.remove_source_branch?
- DeleteBranchService.new(merge_request.source_project, current_user).execute(merge_request.source_branch)
- end
-
- true
- else
- false
- end
- end
- end
-
- def commit
- committer = repository.user_to_comitter(current_user)
-
- options = {
- message: commit_message,
- author: committer,
- committer: committer
- }
-
- repository.merge(merge_request.source_branch, merge_request.target_branch, options)
- end
-
- def after_commit(sha, branch)
- commit = repository.commit(sha)
- full_ref = "#{Gitlab::Git::BRANCH_REF_PREFIX}#{branch}"
- old_sha = commit.parent_id || Gitlab::Git::BLANK_SHA
- GitPushService.new.execute(project, current_user, old_sha, sha, full_ref)
- end
-
- def repository
- project.repository
- end
end
end