Switch to side-by-side view

--- a/Allura/allura/model/repo.py
+++ b/Allura/allura/model/repo.py
@@ -65,6 +65,7 @@
     'repo_last_commit', project_doc_session,
     Field('_id', str),
     Field('object_id', str, index=True),
+    Field('name', str),
     Field('commit_info', dict(
         id=str,
         date=datetime,
@@ -331,15 +332,22 @@
 
     def ls(self):
         # Load last commit info
+        id_re = re.compile("^{0}:{1}:".format(self.repo._id, self.path()))
+        lc_index = dict(
+            (lc.name, lc.commit_info)
+            for lc in LastCommitDoc.m.find(dict(_id=id_re)))
+
+        # FIXME: Temporarily fall back to old, semi-broken lookup behavior until refresh is done
         oids = [ x.id for x in chain(self.tree_ids, self.blob_ids, self.other_ids) ]
-        lc_index = dict(
+        id_re = re.compile("^{0}:".format(self.repo._id))
+        lc_index.update(dict(
             (lc.object_id, lc.commit_info)
-            for lc in LastCommitDoc.m.find(dict(
-                    _id=re.compile("^{}:".format(self.repo._id)),
-                    object_id={'$in': oids})))
+            for lc in LastCommitDoc.m.find(dict(_id=id_re, object_id={'$in': oids}))))
+        # /FIXME
+
         results = []
-        def _get_last_commit(oid):
-            lc = lc_index.get(oid)
+        def _get_last_commit(name, oid):
+            lc = lc_index.get(name, lc_index.get(oid, None))
             if lc is None:
                 lc = dict(
                     author=None,
@@ -358,19 +366,19 @@
                     kind='DIR',
                     name=x.name,
                     href=x.name + '/',
-                    last_commit=_get_last_commit(x.id)))
+                    last_commit=_get_last_commit(x.name, x.id)))
         for x in sorted(self.blob_ids, key=lambda x:x.name):
             results.append(dict(
                     kind='FILE',
                     name=x.name,
                     href=x.name,
-                    last_commit=_get_last_commit(x.id)))
+                    last_commit=_get_last_commit(x.name, x.id)))
         for x in sorted(self.other_ids, key=lambda x:x.name):
             results.append(dict(
                     kind=x.type,
                     name=x.name,
                     href=None,
-                    last_commit=_get_last_commit(x.id)))
+                    last_commit=_get_last_commit(x.name, x.id)))
         return results
 
     def path(self):