Switch to side-by-side view

--- a/Allura/allura/model/repo.py
+++ b/Allura/allura/model/repo.py
@@ -231,6 +231,17 @@
         for line in sorted(lines):
             sha_obj.update(line)
         return sha_obj.hexdigest()
+
+    def __getitem__(self, name):
+        obj = self.by_name[name]
+        if obj['type'] == 'blob': return obj
+        obj = self.query.get(_id=obj['id'])
+        if obj is None:
+            oid = self.repo.compute_tree_new(self.commit, self.path() + name + '/')
+            obj = self.query.get(_id=oid)
+        if obj is None: raise KeyError, name
+        obj.set_context(self, name)
+        return obj
 
     def set_context(self, commit_or_tree, name=None):
         assert commit_or_tree is not self