summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem V. Navrotskiy <bozaro@users.noreply.github.com>2015-10-20 21:47:29 +0300
committerArtem V. Navrotskiy <bozaro@users.noreply.github.com>2015-10-21 13:53:07 +0300
commitc192444db5ab4b770ec081b48229ee50b6eaa57e (patch)
tree90b67a016377f4ea973671725287a22be11a1ce6
parentd25b50fda63e830cb2c87281bba064b71185e712 (diff)
downloadgitlab-ce-c192444db5ab4b770ec081b48229ee50b6eaa57e.tar.gz
Show empty repository page if repository don't have branches
-rw-r--r--CHANGELOG1
-rw-r--r--app/models/project.rb2
-rw-r--r--app/models/repository.rb13
3 files changed, 15 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 4a9a85d5ebf..bb0e97603c5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -88,6 +88,7 @@ v 8.0.5
- Correct lookup-by-email for LDAP logins
- Fix loading spinner sometimes not being hidden on Merge Request tab switches
- Animate the logo on hover
+ - Show "Empty Repository Page" for repository without branches (#9728)
v 8.0.4
- Fix Message-ID header to be RFC 2111-compliant to prevent e-mails being dropped (Stan Hu)
diff --git a/app/models/project.rb b/app/models/project.rb
index 88cd88dcb5a..4c5bf220f24 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -567,7 +567,7 @@ class Project < ActiveRecord::Base
end
def empty_repo?
- !repository.exists? || repository.empty?
+ !repository.exists? || !repository.has_visible_content?
end
def repo
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 0808896fd87..88d3d73a40e 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -44,6 +44,19 @@ class Repository
raw_repository.empty?
end
+ #
+ # Git repository can contains some hidden refs like:
+ # /refs/notes/*
+ # /refs/git-as-svn/*
+ # /refs/pulls/*
+ # This refs by default not visible in project page and not cloned to client side.
+ #
+ # This method return true if repository contains some content visible in project page.
+ #
+ def has_visible_content?
+ !raw_repository.branches.empty?
+ end
+
def commit(id = 'HEAD')
return nil unless raw_repository
commit = Gitlab::Git::Commit.find(raw_repository, id)