diff -r b71c547e0dbe kallithea/lib/vcs/backends/git/repository.py --- a/kallithea/lib/vcs/backends/git/repository.py Mon Oct 06 23:41:18 2025 +0200 +++ b/kallithea/lib/vcs/backends/git/repository.py Fri Apr 24 13:09:23 2026 +0200 @@ -30,6 +30,7 @@ from dulwich.objects import Tag from dulwich.repo import NotGitRepository, Repo from dulwich.server import update_server_info +from dulwich.refs import Ref from kallithea.lib.vcs import subprocessio from kallithea.lib.vcs.backends.base import BaseRepository, CollectionGenerator @@ -87,12 +88,7 @@ """ Checks if repository is empty ie. without any changesets """ - - try: - self.revisions[0] - except (KeyError, IndexError): - return True - return False + return self.head is None @LazyProperty def revisions(self): @@ -504,15 +500,12 @@ return _refs def _heads(self, reverse=False): - refs = self._repo.get_refs() + refs = self._repo.refs.as_dict(Ref(b"refs/heads")) | self._repo.refs.as_dict(Ref(b"refs/remotes/origin")) heads = {} for key, val in refs.items(): - for ref_key in [b'refs/heads/', b'refs/remotes/origin/']: - if key.startswith(ref_key): - n = key[len(ref_key):] - if n not in [b'HEAD']: - heads[n] = val + if key not in [b'HEAD']: + heads[key] = val return heads if reverse else dict((y, x) for x, y in heads.items())