diff --git a/klaus/repo.py b/klaus/repo.py index 52a01d64..2f240ce9 100644 --- a/klaus/repo.py +++ b/klaus/repo.py @@ -108,7 +108,10 @@ def _get_commit_time(ref_id): if len(all_ids) > max_refs: all_ids = sorted(all_ids)[:max_refs] # Always add HEAD. - all_ids.append(self.dulwich_repo.refs[b"HEAD"]) + try: + all_ids.append(self.dulwich_repo.refs[b"HEAD"]) + except KeyError: + pass commit_times = filter(None, map(_get_commit_time_cached, all_ids)) try: @@ -179,14 +182,7 @@ def get_default_branch(self): return candidate except InaccessibleRef: pass - for name in self.get_branch_names(): - try: - self.get_commit(name) - return name - except InaccessibleRef: - pass - else: - return None + return None @synchronized def get_ref_names_ordered_by_last_commit(self, prefix, exclude=None): diff --git a/klaus/views.py b/klaus/views.py index 8ab98f0f..acacfb65 100644 --- a/klaus/views.py +++ b/klaus/views.py @@ -110,7 +110,11 @@ def _get_repo_and_rev(repo, namespace=None, rev=None, path=None): if rev is None: rev = repo.get_default_branch() if rev is None: - raise NotFound("Empty repository") + rev = "HEAD" + try: + repo.get_commit("HEAD") + except KeyError: + raise NotFound("No commits yet") i = len(rev) while i > 0: