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:
authorValery Sizov <valery@gitlab.com>2015-07-23 14:31:29 +0300
committerValery Sizov <valery@gitlab.com>2015-07-23 14:31:29 +0300
commit5dd4dea93baa6386ed860a50125dce3ca3890f16 (patch)
treea4380d4df828ab46baec0726f8c5ab5a57712028 /app
parent8a539e58c8f56881094edd435170147d99e1e438 (diff)
parent0484ae7e6a7f0e6301089cdf7ce3e8a17e9079b8 (diff)
Merge branch 'remove-source-branch' into 'master'
Fix bug causing "Remove source-branch" option not to work for merge requests from the same project. Fixes #2049. See merge request !1025
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.rb10
3 files changed, 14 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..db824d452d0 100644
--- a/app/services/merge_requests/auto_merge_service.rb
+++ b/app/services/merge_requests/auto_merge_service.rb
@@ -37,6 +37,14 @@ 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
+
+ true
+ else
+ false
end
end
end
@@ -55,7 +63,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