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
path: root/app
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-07-22 15:07:41 +0300
committerDouwe Maan <douwe@gitlab.com>2015-07-22 15:07:41 +0300
commit276ca427ea8c30b20881f466bb9137596174cdb4 (patch)
tree1a44ff9c77c4bbc74ff851235672f58692b0768a /app
parent95d89e442a83eaf5456c2a34362579dd889e0f71 (diff)
Fix Remove source-branch for MRs from same project
Diffstat (limited to 'app')
-rw-r--r--app/models/merge_request.rb4
-rw-r--r--app/services/files/base_service.rb2
-rw-r--r--app/services/merge_requests/auto_merge_service.rb6
3 files changed, 10 insertions, 2 deletions
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