Use existing methods for branch names: Ex use @repository.branch_names instead of @repository.heads.map(&:name)
This commit is contained in:
parent
025e41576e
commit
71b0f8ea0b
5 changed files with 32 additions and 13 deletions
|
@ -129,11 +129,11 @@ class MergeRequestsController < ProjectResourceController
|
||||||
|
|
||||||
def validates_merge_request
|
def validates_merge_request
|
||||||
# Show git not found page if target branch doesn't exist
|
# Show git not found page if target branch doesn't exist
|
||||||
return invalid_mr unless @project.repo.heads.map(&:name).include?(@merge_request.target_branch)
|
return invalid_mr unless @project.repository.branch_names.include?(@merge_request.target_branch)
|
||||||
|
|
||||||
# Show git not found page if source branch doesn't exist
|
# Show git not found page if source branch doesn't exist
|
||||||
# and there is no saved commits between source & target branch
|
# and there is no saved commits between source & target branch
|
||||||
return invalid_mr if !@project.repo.heads.map(&:name).include?(@merge_request.source_branch) && @merge_request.commits.blank?
|
return invalid_mr if !@project.repository.branch_names.include?(@merge_request.source_branch) && @merge_request.commits.blank?
|
||||||
end
|
end
|
||||||
|
|
||||||
def define_show_vars
|
def define_show_vars
|
||||||
|
|
|
@ -369,12 +369,19 @@ class Project < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def open_branches
|
def open_branches
|
||||||
if protected_branches.empty?
|
all_branches = repository.branches
|
||||||
self.repo.heads
|
|
||||||
else
|
if protected_branches.present?
|
||||||
pnames = protected_branches.map(&:name)
|
all_branches.reject! do |branch|
|
||||||
self.repo.heads.reject { |h| pnames.include?(h.name) }
|
protected_branches_names.include?(branch.name)
|
||||||
end.sort_by(&:name)
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
all_branches
|
||||||
|
end
|
||||||
|
|
||||||
|
def protected_branches_names
|
||||||
|
@protected_branches_names ||= protected_branches.map(&:name)
|
||||||
end
|
end
|
||||||
|
|
||||||
def root_ref?(branch)
|
def root_ref?(branch)
|
||||||
|
@ -396,6 +403,6 @@ class Project < ActiveRecord::Base
|
||||||
|
|
||||||
# Check if current branch name is marked as protected in the system
|
# Check if current branch name is marked as protected in the system
|
||||||
def protected_branch? branch_name
|
def protected_branch? branch_name
|
||||||
protected_branches.map(&:name).include?(branch_name)
|
protected_branches_names.include?(branch_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -63,8 +63,9 @@ class Repository
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns an Array of branch names
|
# Returns an Array of branch names
|
||||||
|
# sorted by name ASC
|
||||||
def branch_names
|
def branch_names
|
||||||
repo.branches.collect(&:name).sort
|
branches.map(&:name)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns an Array of Branches
|
# Returns an Array of Branches
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
.mr_branch_box
|
.mr_branch_box
|
||||||
%h5.cgray From (Head Branch)
|
%h5.cgray From (Head Branch)
|
||||||
.body
|
.body
|
||||||
.padded= f.select(:source_branch, @repository.heads.map(&:name), { include_blank: "Select branch" }, {class: 'chosen span4'})
|
.padded= f.select(:source_branch, @repository.branch_names, { include_blank: "Select branch" }, {class: 'chosen span4'})
|
||||||
.mr_source_commit
|
.mr_source_commit
|
||||||
|
|
||||||
.span2
|
.span2
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
.mr_branch_box
|
.mr_branch_box
|
||||||
%h5.cgray To (Base Branch)
|
%h5.cgray To (Base Branch)
|
||||||
.body
|
.body
|
||||||
.padded= f.select(:target_branch, @repository.heads.map(&:name), { include_blank: "Select branch" }, {class: 'chosen span4'})
|
.padded= f.select(:target_branch, @repository.branch_names, { include_blank: "Select branch" }, {class: 'chosen span4'})
|
||||||
.mr_target_commit
|
.mr_target_commit
|
||||||
|
|
||||||
%fieldset
|
%fieldset
|
||||||
|
|
|
@ -233,7 +233,7 @@ describe Project do
|
||||||
|
|
||||||
it "should be true for projects with external issues tracker if issues enabled" do
|
it "should be true for projects with external issues tracker if issues enabled" do
|
||||||
ext_project.can_have_issues_tracker_id?.should be_true
|
ext_project.can_have_issues_tracker_id?.should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be false for projects with internal issue tracker if issues enabled" do
|
it "should be false for projects with internal issue tracker if issues enabled" do
|
||||||
project.can_have_issues_tracker_id?.should be_false
|
project.can_have_issues_tracker_id?.should be_false
|
||||||
|
@ -247,4 +247,15 @@ describe Project do
|
||||||
ext_project.can_have_issues_tracker_id?.should be_false
|
ext_project.can_have_issues_tracker_id?.should be_false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe :open_branches do
|
||||||
|
let(:project) { create(:project) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
project.protected_branches.create(name: 'master')
|
||||||
|
end
|
||||||
|
|
||||||
|
it { project.open_branches.map(&:name).should include('bootstrap') }
|
||||||
|
it { project.open_branches.map(&:name).should_not include('master') }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue