From 276ca427ea8c30b20881f466bb9137596174cdb4 Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Wed, 22 Jul 2015 14:07:41 +0200 Subject: Fix Remove source-branch for MRs from same project --- app/models/merge_request.rb | 4 ++++ app/services/files/base_service.rb | 2 +- app/services/merge_requests/auto_merge_service.rb | 6 +++++- 3 files changed, 10 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 53b3fc10ccb..1ef76d16700 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -235,6 +235,10 @@ class MergeRequest < ActiveRecord::Base execute(self, commit_message) end + def remove_source_branch? + self.should_remove_source_branch && !self.source_project.root_ref?(self.source_branch) && !self.for_fork? + end + def open? opened? || reopened? end diff --git a/app/services/files/base_service.rb b/app/services/files/base_service.rb index f587ee266da..646784f2d9d 100644 --- a/app/services/files/base_service.rb +++ b/app/services/files/base_service.rb @@ -39,7 +39,7 @@ module Files def after_commit(sha, branch) commit = repository.commit(sha) - full_ref = 'refs/heads/' + branch + 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 diff --git a/app/services/merge_requests/auto_merge_service.rb b/app/services/merge_requests/auto_merge_service.rb index df793fc997d..a5ee16e529c 100644 --- a/app/services/merge_requests/auto_merge_service.rb +++ b/app/services/merge_requests/auto_merge_service.rb @@ -37,6 +37,10 @@ module MergeRequests # 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 end end end @@ -55,7 +59,7 @@ module MergeRequests def after_commit(sha, branch) commit = repository.commit(sha) - full_ref = 'refs/heads/' + branch + 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 -- cgit v1.2.3 From 0484ae7e6a7f0e6301089cdf7ce3e8a17e9079b8 Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Thu, 23 Jul 2015 13:10:32 +0200 Subject: Return true/false from AutoMergeService#merge! --- app/services/merge_requests/auto_merge_service.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app') diff --git a/app/services/merge_requests/auto_merge_service.rb b/app/services/merge_requests/auto_merge_service.rb index a5ee16e529c..db824d452d0 100644 --- a/app/services/merge_requests/auto_merge_service.rb +++ b/app/services/merge_requests/auto_merge_service.rb @@ -41,6 +41,10 @@ module MergeRequests 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 -- cgit v1.2.3