Switch to side-by-side view

--- a/Allura/allura/tasks/repo_tasks.py
+++ b/Allura/allura/tasks/repo_tasks.py
@@ -102,3 +102,18 @@
     except Exception, e:
         source_url = source_path or source_url
         g.post_event('repo_clone_task_failed', source_url, traceback.format_exc())
+
+@task
+def tarball(revision=None):
+    log = logging.getLogger(__name__)
+    if revision:
+        repo = c.app.repo
+        repo.set_tarball_status(revision, 'busy')
+        try:
+            repo.tarball(revision)
+            repo.set_tarball_status(revision, 'ready')
+        except:
+            repo.set_tarball_status(revision, None)
+            log.error('Could not create tarball for repository %s:%s revision %s' % (c.project.shortname, c.app.config.options.mount_point, revision), exc_info=True)
+    else:
+        log.warn('Creation of tarball for %s:%s skipped because revision is not specified' % (c.project.shortname, c.app.config.options.mount_point))