diff --git a/rhodecode/lib/vcs/backends/git/repository.py b/rhodecode/lib/vcs/backends/git/repository.py --- a/rhodecode/lib/vcs/backends/git/repository.py +++ b/rhodecode/lib/vcs/backends/git/repository.py @@ -177,9 +177,9 @@ class GitRepository(BaseRepository): # we must check if this repo is not empty, since later command # fails if it is. And it's cheaper to ask than throw the subprocess # errors - try: - self._remote.head() - except KeyError: + + head = self._remote.head(show_exc=False) + if not head: return [] rev_filter = ['--branches', '--tags'] diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -2206,7 +2206,9 @@ class Repository(Base, BaseModel): if cs_cache is None: # use no-cache version here scm_repo = self.scm_instance(cache=False, config=config) - if scm_repo: + + empty = scm_repo.is_empty() + if not empty: cs_cache = scm_repo.get_commit( pre_load=["author", "date", "message", "parents"]) else: