Commit cd579cb2 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge pull request #9545 from Baldinof/add_merged_label

Add merged label on branches page
parents cb6ad67f 8adf6ba8
...@@ -55,6 +55,7 @@ v 7.14.0 (unreleased) ...@@ -55,6 +55,7 @@ v 7.14.0 (unreleased)
- Fix bug causing error when the target branch of a symbolic ref was deleted - Fix bug causing error when the target branch of a symbolic ref was deleted
- Include branch/tag name in archive file and directory name - Include branch/tag name in archive file and directory name
- Add dropzone upload progress - Add dropzone upload progress
- Add a label for merged branches on branches page (Florent Baldino)
v 7.13.3 v 7.13.3
- Fix bug causing Bitbucket importer to crash when OAuth application had been removed. - Fix bug causing Bitbucket importer to crash when OAuth application had been removed.
......
...@@ -364,6 +364,17 @@ class Repository ...@@ -364,6 +364,17 @@ class Repository
@root_ref ||= raw_repository.root_ref @root_ref ||= raw_repository.root_ref
end end
def merged_to_root_ref?(branch_name)
branch_commit = commit(branch_name)
root_ref_commit = commit(root_ref)
if branch_commit
rugged.merge_base(root_ref_commit.id, branch_commit.id) == branch_commit.id
else
nil
end
end
def search_files(query, ref) def search_files(query, ref)
offset = 2 offset = 2
args = %W(git grep -i -n --before-context #{offset} --after-context #{offset} #{query} #{ref || root_ref}) args = %W(git grep -i -n --before-context #{offset} --after-context #{offset} #{query} #{ref || root_ref})
......
...@@ -5,6 +5,11 @@ ...@@ -5,6 +5,11 @@
%strong.str-truncated= branch.name %strong.str-truncated= branch.name
- if branch.name == @repository.root_ref - if branch.name == @repository.root_ref
%span.label.label-info default %span.label.label-info default
- elsif @repository.merged_to_root_ref? branch.name
%span.label.label-primary.has_tooltip(title="Merged into #{@repository.root_ref}")
%i.fa.fa-check
merged
- if @project.protected_branch? branch.name - if @project.protected_branch? branch.name
%span.label.label-success %span.label.label-success
%i.fa.fa-lock %i.fa.fa-lock
......
...@@ -34,6 +34,26 @@ describe Repository do ...@@ -34,6 +34,26 @@ describe Repository do
end end
end end
describe :merged_to_root_ref? do
context 'merged branch' do
subject { repository.merged_to_root_ref?('improve/awesome') }
it { is_expected.to be_truthy }
end
context 'non merged branch' do
subject { repository.merged_to_root_ref?('fix') }
it { is_expected.to be_falsey }
end
context 'non existent branch' do
subject { repository.merged_to_root_ref?('non_existent_branch') }
it { is_expected.to be_nil }
end
end
describe "search_files" do describe "search_files" do
let(:results) { repository.search_files('feature', 'master') } let(:results) { repository.search_files('feature', 'master') }
subject { results } subject { results }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment