Switch to side-by-side view

--- a/ForgeHg/forgehg/controllers.py
+++ b/ForgeHg/forgehg/controllers.py
@@ -1,4 +1,4 @@
-from tg import expose, url, override_template
+from tg import expose, url, override_template, redirect
 from tg.decorators import with_trailing_slash, without_trailing_slash
 from pylons import c
 
@@ -6,24 +6,33 @@
 from allura.lib.security import require, has_artifact_access
 from allura.lib import patience
 
-from .widgets import HgRevisionWidget
+from .widgets import HgRevisionWidget, HgLog
 
 revision_widget = HgRevisionWidget()
+log_widget = HgLog()
 
 def on_import():
     BranchBrowser.CommitBrowserClass = CommitBrowser
+    CommitBrowser.TreeBrowserClass = TreeBrowser
 
 class BranchBrowser(repository.BranchBrowser):
 
     def _check_security(self):
         require(has_artifact_access('read', c.app.repo))
 
-    @expose('forgehg.templates.index')
+    @expose('jinja:hg_index.html')
     @with_trailing_slash
-    def index(self, offset=0, limit=10, **kw):
-        c.revision_widget=revision_widget
-        return dict(super(BranchBrowser, self).index(offset, limit),
-                    allow_fork=False)
+    def index(self, limit=None, page=0, count=0, **kw):
+        latest = c.app.repo.latest(branch=self._branch)
+        if not latest:
+            return dict(allow_fork=True, log=[])
+        redirect(latest.tree().url())
+
+    @expose('jinja:hg_log.html')
+    @with_trailing_slash
+    def log(self, limit=None, page=0, count=0, **kw):
+        c.log_widget=log_widget
+        return super(BranchBrowser, self).index(limit, page, count)
 
     @expose()
     def _lookup(self, rev, *remainder):
@@ -32,7 +41,7 @@
 class CommitBrowser(repository.CommitBrowser):
     revision_widget = HgRevisionWidget()
 
-    @expose('forgehg.templates.commit')
+    @expose('jinja:hg_commit.html')
     @with_trailing_slash
     def index(self, **kw):
         result = super(CommitBrowser, self).index()
@@ -40,4 +49,11 @@
         result.update(self._commit.context())
         return result
 
+class TreeBrowser(repository.TreeBrowser):
+
+    @expose('jinja:hg_tree.html')
+    @with_trailing_slash
+    def index(self, **kw):
+        return super(TreeBrowser, self).index()
+
 on_import()