--- a/Allura/allura/model/repo.py
+++ b/Allura/allura/model/repo.py
@@ -3,7 +3,7 @@
 from ming import Document, Field
 from ming import schema as S
 
-from .session import main_doc_session
+from .session import main_doc_session, project_doc_session
 
 class Commit(Document):
     class __mongometa__:
@@ -39,6 +39,16 @@
             return ' '.join(summary)
         return ''
 
+    def url(self):
+        return ''
+
+    def shorthand_id(self):
+        return ''
+
+    @property
+    def author_url(self):
+        return ''
+
 class Tree(Document):
     class __mongometa__:
         name = 'repo_tree'
@@ -49,6 +59,45 @@
     tree_ids = Field([dict(name=str, id=str)])
     blob_ids = Field([dict(name=str, id=str)])
     other_ids = Field([dict(name=str, id=str, type=ObjType)])
+
+class LastCommit(Document):
+    class __mongometa__:
+        name = 'repo_last_commit'
+        session = project_doc_session
+        indexes = [
+            ( 'repo_id', 'object_id'),
+            ]
+
+    _id = Field(str)
+    repo_id=Field(S.ObjectId())
+    object_id=Field(str)
+    commit_info = Field(dict(
+        id=str,
+        date=datetime,
+        author=str,
+        author_email=str,
+        author_url=str,
+        href=str,
+        shortlink=str,
+        summary=str))
+
+    @classmethod
+    def set_last_commit(cls, repo_id, oid, commit):
+        lc = cls(dict(
+                _id='%s:%s' % (repo_id, oid),
+                repo_id=repo_id,
+                object_id=oid,
+                commit_info=dict(
+                    id=commit._id,
+                    author=commit.authored.name,
+                    author_email=commit.authored.email,
+                    author_url=commit.author_url,
+                    date=commit.authored.date,
+                    href=commit.url(),
+                    shortlink=commit.shorthand_id(),
+                    summary=commit.summary)))
+        lc.m.save(safe=False)
+        return lc
 
 class Trees(Document):
     class __mongometa__: