--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -27,6 +27,7 @@
 from allura.lib.widgets.repo import SCMMergeRequestWidget, SCMMergeRequestFilterWidget
 from allura.lib.widgets.repo import SCMMergeRequestDisposeWidget, SCMCommitBrowserWidget
 from allura import model as M
+from allura.lib.widgets import form_fields as ffw
 
 from .base import BaseController
 
@@ -380,6 +381,8 @@
     TreeBrowserClass=None
     revision_widget = SCMRevisionWidget()
     log_widget=SCMLogWidget()
+    page_list=ffw.PageList()
+    DEFAULT_PAGE_LIMIT = 25
 
     def __init__(self, revision):
         self._revision = revision
@@ -389,13 +392,20 @@
         self.tree = self.TreeBrowserClass(self._commit, tree=self._commit.tree)
 
     @expose('jinja:allura:templates/repo/commit.html')
-    def index(self):
+    @validate(dict(page=validators.Int(if_empty=0),
+                   limit=validators.Int(if_empty=DEFAULT_PAGE_LIMIT)))
+    def index(self, page=0, limit=DEFAULT_PAGE_LIMIT):
         c.revision_widget = self.revision_widget
+        c.page_list = self.page_list
         result = dict(commit=self._commit)
         if self._commit:
             result.update(self._commit.context())
         result['artifacts'] = [(t,f) for t in ('added', 'removed', 'changed', 'copied')
                                      for f in self._commit.diffs[t]]
+        limit, page, start = g.handle_paging(limit, page,
+                                             default=self.DEFAULT_PAGE_LIMIT)
+        result.update(dict(page=page, limit=limit, start=start,
+                           count=len(result['artifacts'])))
         return result
 
     @expose('jinja:allura:templates/repo/commit_basic.html')