diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-10-22 10:25:57 +0200 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-10-22 10:25:57 +0200 |
commit | 8b127f4526ea6dacec3ee02725e5624aaa7f9d4a (patch) | |
tree | 6bc5c18f84e294c0f6f77497948e659e9bda7e3f | |
parent | 46e66f5845d14f086400d201c1855abe70f337f8 (diff) | |
parent | 57382d6170a637c30d84efc11f6d7bd111cd6ca9 (diff) | |
download | gitlab-ce-8b127f4526ea6dacec3ee02725e5624aaa7f9d4a.tar.gz |
Merge branch 'bozaro-empty-repo'
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/models/project.rb | 2 | ||||
-rw-r--r-- | app/models/repository.rb | 13 |
3 files changed, 15 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG index 267892c4cc7..671955d70cf 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,7 @@ v 8.2.0 (unreleased) - Adds ability to remove the forked relationship from project settings screen. (Han Loong Liauw) - Improved performance of sorting milestone issues - Allow users to select the Files view as default project view (Cristian Bica) + - Show "Empty Repository Page" for repository without branches (Artem V. Navrotskiy) v 8.1.0 (unreleased) - Send an email to admin email when a user is reported for spam (Jonathan Rochkind) 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) |