diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index fed761a6..2aba24bc 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -189,7 +189,7 @@ class MergeRequest < ActiveRecord::Base self.merge!(current_user.id) true end - rescue + rescue self.mark_as_unmergable false end diff --git a/app/models/project/repository_trait.rb b/app/models/project/repository_trait.rb index a759ead5..2b9cf437 100644 --- a/app/models/project/repository_trait.rb +++ b/app/models/project/repository_trait.rb @@ -114,5 +114,9 @@ module Project::RepositoryTrait def root_ref default_branch || "master" end + + def root_ref? branch + root_ref == branch + end end end diff --git a/app/views/merge_requests/show.html.haml b/app/views/merge_requests/show.html.haml index 9a804ee2..cfa74fc0 100644 --- a/app/views/merge_requests/show.html.haml +++ b/app/views/merge_requests/show.html.haml @@ -65,8 +65,9 @@ = form_for [:automerge, @project, @merge_request], :remote => true, :method => :get do |f| You can accept this request automatically. If you still want to do it manually - #{link_to "click here", "#", :class => "how_to_merge_link vlink", :title => "How To Merge"} for instructions %br - = check_box_tag :should_remove_source_branch - = label_tag :should_remove_source_branch, "Remove source-branch" + -unless @project.root_ref? @merge_request.source_branch + = check_box_tag :should_remove_source_branch + = label_tag :should_remove_source_branch, "Remove source-branch" = f.submit "Accept Merge Request", :class => "btn small info accept_merge_request" diff --git a/lib/gitlab/merge.rb b/lib/gitlab/merge.rb index 74ad70b5..134695ce 100644 --- a/lib/gitlab/merge.rb +++ b/lib/gitlab/merge.rb @@ -50,7 +50,7 @@ module Gitlab output = merge_repo.git.pull({}, "--no-ff", "origin", merge_request.source_branch) #remove source-branch - if merge_request.should_remove_source_branch + if merge_request.should_remove_source_branch && !project.root_ref?(merge_request.source_branch) merge_repo.git.sh "git push origin :#{merge_request.source_branch}" end