diff --git a/klaus/templates/view_commit.html b/klaus/templates/view_commit.html
index 2262b8a9e4643492ffa25e59684b354f74326efe..88e83041a0f05b22927319d8e950fcb56ad511c5 100644
--- a/klaus/templates/view_commit.html
+++ b/klaus/templates/view_commit.html
@@ -1,6 +1,6 @@
 {% extends 'base.html' %}
 
-{% block extra_header %}{% endblock %} {# no branch selector on commits #}
+{% block extra_header %}{% endblock %} {# hide branch selector #}
 
 {% block title %}
   Commit {{ rev }} - {{ repo.name }}
diff --git a/klaus/views.py b/klaus/views.py
index 24138767a54eb8ef9adc6f0053631b870171f7cc..d79a3ad976fd1fa2b44fdcd2809feed986258b04 100644
--- a/klaus/views.py
+++ b/klaus/views.py
@@ -40,6 +40,24 @@ def robots_txt():
     return current_app.send_static_file('robots.txt')
 
 
+def _get_repo_and_rev(repo, rev=None):
+    try:
+        repo = current_app.repos[repo]
+    except KeyError:
+        raise NotFound("No such repository %r" % repo)
+
+    if rev is None:
+        rev = repo.get_default_branch()
+        if rev is None:
+            raise NotFound("Empty repository")
+    try:
+        commit = repo.get_commit(rev)
+    except KeyError:
+        raise NotFound("No such commit %r" % rev)
+
+    return repo, rev, commit
+
+
 class BaseRepoView(View):
     """Base for all views with a repo context.
 
@@ -64,20 +82,7 @@ class BaseRepoView(View):
         return render_template(self.template_name, **self.context)
 
     def make_template_context(self, repo, rev, path):
-        try:
-            repo = current_app.repos[repo]
-        except KeyError:
-            raise NotFound("No such repository %r" % repo)
-
-        if rev is None:
-            rev = repo.get_default_branch()
-            if rev is None:
-                raise NotFound("Empty repository")
-        try:
-            commit = repo.get_commit(rev)
-        except KeyError:
-            raise NotFound("No such commit %r" % rev)
-
+        repo, rev, commit = _get_repo_and_rev(repo, rev)
         try:
             blob_or_tree = repo.get_blob_or_tree(commit, path)
         except KeyError: