diff options
author | Rémy Coutable <remy@rymai.me> | 2017-12-01 11:02:32 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-12-01 12:05:29 +0100 |
commit | 707225506d361d58b0bbda2b159be67101a857bf (patch) | |
tree | 7d3003dbfff273b73e40e5e279c176c1b2db653d | |
parent | 3141105ec49dd13434c2e8964b55427a764c7287 (diff) | |
download | gitlab-ce-40615-specific-10-2-fix.tar.gz |
Merge branch 'sh-fix-root-ref-repository' into 'master'40615-specific-10-2-fix
Gracefully handle case when repository's root ref does not exist
Closes #40615
See merge request gitlab-org/gitlab-ce!15678
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r-- | changelogs/unreleased/sh-fix-root-ref-repository.yml | 5 | ||||
-rw-r--r-- | lib/gitlab/git/repository.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/git/repository_spec.rb | 10 |
3 files changed, 17 insertions, 0 deletions
diff --git a/changelogs/unreleased/sh-fix-root-ref-repository.yml b/changelogs/unreleased/sh-fix-root-ref-repository.yml new file mode 100644 index 00000000000..0670db84fa6 --- /dev/null +++ b/changelogs/unreleased/sh-fix-root-ref-repository.yml @@ -0,0 +1,5 @@ +--- +title: "Gracefully handle case when repository's root ref does not exist" +merge_request: +author: +type: fixed diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb index 8128d91480d..33787e5eae7 100644 --- a/lib/gitlab/git/repository.rb +++ b/lib/gitlab/git/repository.rb @@ -1222,6 +1222,8 @@ module Gitlab end def git_merged_branch_names(branch_names = []) + return [] unless root_ref + lines = run_git(['branch', '--merged', root_ref] + branch_names) .first.lines diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb index ce24c10b28e..a9703fc7cc6 100644 --- a/spec/lib/gitlab/git/repository_spec.rb +++ b/spec/lib/gitlab/git/repository_spec.rb @@ -1217,6 +1217,16 @@ describe Gitlab::Git::Repository, seed_helper: true do end end + context 'when no root ref is available' do + it 'returns empty list' do + project = create(:project, :empty_repo) + + names = project.repository.merged_branch_names(%w[feature]) + + expect(names).to be_empty + end + end + context 'when no branch names are specified' do it 'returns all merged branch names' do names = repository.merged_branch_names |