From 602806d78673dc03f400e1f2ad22cb9ec8db5109 Mon Sep 17 00:00:00 2001 From: Valery Sizov Date: Thu, 23 Jul 2015 14:19:53 +0300 Subject: [PATCH 1/4] update changelog --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index d8e36ccb7f..6a01d75e2c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ 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 v 7.13.0 - Remove repository graph log to fix slow cache updates after push event (Stan Hu) From 81666b301a124e370ab965cd020b132ab824902d Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Wed, 22 Jul 2015 14:07:41 +0200 Subject: [PATCH 2/4] Fix Remove source-branch for MRs from same project --- CHANGELOG | 14 ++++++++++++++ app/models/merge_request.rb | 4 ++++ app/services/files/base_service.rb | 2 +- app/services/merge_requests/auto_merge_service.rb | 6 +++++- lib/gitlab/satellite/merge_action.rb | 2 +- 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 6a01d75e2c..fafe49befd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,20 @@ v 7.13.1 - Fix: "Create Merge Request" isn't always shown in event for newly pushed branch v 7.13.0 +v 7.14.0 (unreleased) + - Fix full screen mode for snippet comments (Daniel Gerhardt) + - Fix 404 error in files view after deleting the last file in a repository (Stan Hu) + - Fix label read access for unauthenticated users (Daniel Gerhardt) + - Fix access to disabled features for unauthenticated users (Daniel Gerhardt) + - Fix OAuth provider bug where GitLab would not go return to the redirect_uri after sign-in (Stan Hu) + - Fix file upload dialog for comment editing (Daniel Gerhardt) + - Set OmniAuth full_host parameter to ensure redirect URIs are correct (Stan Hu) + - Expire Rails cache entries after two weeks to prevent endless Redis growth + - Add support for destroying project milestones (Stan Hu) + - Add fetch command to the MR page. + - Fix bug causing "Remove source-branch" option not to work for merge requests from the same project. + +v 7.13.0 (unreleased) - Remove repository graph log to fix slow cache updates after push event (Stan Hu) - Only enable HSTS header for HTTPS and port 443 (Stan Hu) - Fix user autocomplete for unauthenticated users accessing public projects (Stan Hu) diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 53b3fc10cc..1ef76d1670 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 f587ee266d..646784f2d9 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 df793fc997..a5ee16e529 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 diff --git a/lib/gitlab/satellite/merge_action.rb b/lib/gitlab/satellite/merge_action.rb index 1f2e5f82dd..f9bf286697 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 From 529091b6a333905898ce9cc21d7a9b29452eadf5 Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Thu, 23 Jul 2015 13:10:32 +0200 Subject: [PATCH 3/4] Return true/false from AutoMergeService#merge! --- app/services/merge_requests/auto_merge_service.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/services/merge_requests/auto_merge_service.rb b/app/services/merge_requests/auto_merge_service.rb index a5ee16e529..db824d452d 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 From 494c672e61623510752e63c85127a0a34cdd3e23 Mon Sep 17 00:00:00 2001 From: Valery Sizov Date: Thu, 23 Jul 2015 14:28:02 +0300 Subject: [PATCH 4/4] update changelog --- CHANGELOG | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index fafe49befd..e46dc6ddb3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,22 +8,9 @@ v 7.13.1 - 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 - -v 7.13.0 -v 7.14.0 (unreleased) - - Fix full screen mode for snippet comments (Daniel Gerhardt) - - Fix 404 error in files view after deleting the last file in a repository (Stan Hu) - - Fix label read access for unauthenticated users (Daniel Gerhardt) - - Fix access to disabled features for unauthenticated users (Daniel Gerhardt) - - Fix OAuth provider bug where GitLab would not go return to the redirect_uri after sign-in (Stan Hu) - - Fix file upload dialog for comment editing (Daniel Gerhardt) - - Set OmniAuth full_host parameter to ensure redirect URIs are correct (Stan Hu) - - Expire Rails cache entries after two weeks to prevent endless Redis growth - - Add support for destroying project milestones (Stan Hu) - - Add fetch command to the MR page. - Fix bug causing "Remove source-branch" option not to work for merge requests from the same project. -v 7.13.0 (unreleased) +v 7.13.0 - Remove repository graph log to fix slow cache updates after push event (Stan Hu) - Only enable HSTS header for HTTPS and port 443 (Stan Hu) - Fix user autocomplete for unauthenticated users accessing public projects (Stan Hu)