Switch to side-by-side view

--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -797,7 +797,7 @@
             if isinstance(obj, Tree):
                 results.append(dict(d, kind='DIR', href=x.name + '/'))
             else:
-                results.append(dict(d, kind='DIR', href=x.name + '/'))
+                results.append(dict(d, kind='FILE', href=x.name))
         results.sort(key=lambda d:(d['kind'], d['name']))
         return results
 
@@ -1005,14 +1005,17 @@
                 self.blobs[x.name] = x.object_id
         return self
 
-    def set_tree(self, path, tree):
+    def set_tree(self, path, tree, replace=False):
         if path.startswith('/'): path = path[1:]
         path_parts = path.split('/')
         dirpath, last = path_parts[:-1], path_parts[-1]
         cur = self
         for part in dirpath:
             cur = cur.trees[part]
-        cur.trees[last] = tree
+        if replace:
+            cur.trees[last] = tree
+        else:
+            cur.trees.setdefault(last, tree)
 
     def set_blob(self, path, oid):
         if path.startswith('/'): path = path[1:]