diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-02-04 11:56:58 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-02-04 11:56:58 +0000 |
commit | b5befc734be55a4a7a07519baf03e0ba29c0f8c5 (patch) | |
tree | 5a40c945a29faf868e52ff52a4e7c66f15f5f2ed | |
parent | 9ae125e7e2c02ef6861f6fa09cc2d5048052a8ed (diff) | |
parent | c6e0228ca9937b10ad8e2620501d4fe221108d9a (diff) | |
download | gitlab-ce-b5befc734be55a4a7a07519baf03e0ba29c0f8c5.tar.gz |
Merge branch 'disable-remove-source-branch' into 'master'
Hide remove source branch button when new commit is added to branch
Fixes #3339
This MR hides the 'Remove source branch' button when a new commit is added to the source branch
/cc @DouweM
See merge request !2701
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/models/merge_request.rb | 3 | ||||
-rw-r--r-- | spec/models/merge_request_spec.rb | 8 |
3 files changed, 10 insertions, 2 deletions
diff --git a/CHANGELOG b/CHANGELOG index fc123b22b11..6a8516fd406 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -28,6 +28,7 @@ v 8.5.0 (unreleased) - Support Akismet spam checking for creation of issues via API (Stan Hu) - Improve UI consistency between projects and groups lists - Add sort dropdown to dashboard projects page + - Hide remove source branch button when the MR is merged but new commits are pushed (Zeger-Jan van de Weg) v 8.4.3 - Increase lfs_objects size column to 8-byte integer to allow files larger diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 2594a7e3578..ddc476447ca 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -284,7 +284,8 @@ class MergeRequest < ActiveRecord::Base def can_remove_source_branch?(current_user) !source_project.protected_branch?(source_branch) && !source_project.root_ref?(source_branch) && - Ability.abilities.allowed?(current_user, :push_code, source_project) + Ability.abilities.allowed?(current_user, :push_code, source_project) && + last_commit == source_project.commit(source_branch) end def mr_and_commit_notes diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index cd1953bfc5e..c61ddf01118 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -231,9 +231,15 @@ describe MergeRequest, models: true do expect(subject.can_remove_source_branch?(user2)).to be_falsey end - it "is can be removed in all other cases" do + it "can be removed if the last commit is the head of the source branch" do + allow(subject.source_project).to receive(:commit).and_return(subject.last_commit) + expect(subject.can_remove_source_branch?(user)).to be_truthy end + + it "cannot be removed if the last commit is not also the head of the source branch" do + expect(subject.can_remove_source_branch?(user)).to be_falsey + end end describe "#reset_merge_when_build_succeeds" do |