From 9effaef33497447aa3324bc92ecdc1d5585166c8 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Sat, 11 Aug 2018 14:20:58 +0200 Subject: [PATCH] git: use smarter way for checking if repo is empty. This doesn't spam logs with some dulwich exceptions, we shouldn't really care about here.` --- rhodecode/lib/vcs/backends/git/repository.py | 6 +++--- rhodecode/model/db.py | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/rhodecode/lib/vcs/backends/git/repository.py b/rhodecode/lib/vcs/backends/git/repository.py index dbadff14..12a8b4ab 100644 --- 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 index 47b4fd95..21527b22 100644 --- 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: