summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <valery@gitlab.com>2015-07-23 11:32:51 +0000
committerValery Sizov <valery@gitlab.com>2015-07-23 11:32:51 +0000
commitad2bd1939eea33601575325073f421370e05ab4f (patch)
tree5da79c0acd0a049801b1ebd7f6c56e053b874269
parent53ab8440640fd7a53d9c6c23b79075b442a40a98 (diff)
parent494c672e61623510752e63c85127a0a34cdd3e23 (diff)
downloadgitlab-ce-ad2bd1939eea33601575325073f421370e05ab4f.tar.gz
Merge branch 'update-7-13-stable' into '7-13-stable'
Update 7-13-stable (7.13.1) See merge request !1033
-rw-r--r--CHANGELOG2
-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
-rw-r--r--lib/gitlab/satellite/merge_action.rb2
5 files changed, 17 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index d8e36ccb7ff..e46dc6ddb33 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -7,6 +7,8 @@ v 7.13.1
- Improve documentation
- Fix of migration: Check if session_expire_delay column exists before adding the column
- Fix: ActionView::Template::Error
+ - Fix: "Create Merge Request" isn't always shown in event for newly pushed branch
+ - Fix bug causing "Remove source-branch" option not to work for merge requests from the same project.
v 7.13.0
- Remove repository graph log to fix slow cache updates after push event (Stan Hu)
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
diff --git a/lib/gitlab/satellite/merge_action.rb b/lib/gitlab/satellite/merge_action.rb
index 1f2e5f82dd5..f9bf286697e 100644
--- a/lib/gitlab/satellite/merge_action.rb
+++ b/lib/gitlab/satellite/merge_action.rb
@@ -33,7 +33,7 @@ module Gitlab
merge_repo.git.push(default_options, :origin, merge_request.target_branch)
# remove source branch
- if merge_request.should_remove_source_branch && !project.root_ref?(merge_request.source_branch) && !merge_request.for_fork?
+ if merge_request.remove_source_branch?
# will raise CommandFailed when push fails
merge_repo.git.push(default_options, :origin, ":#{merge_request.source_branch}")
end