--- a/Allura/allura/tasks/repo_tasks.py
+++ b/Allura/allura/tasks/repo_tasks.py
@@ -31,6 +31,19 @@
c.project.shortname, c.app.config.options.mount_point))
@task
+def reclone(*args, **kwargs):
+ from allura import model as M
+ from ming.orm import ThreadLocalORMSession
+ repo = c.app.repo
+ if repo is not None:
+ shutil.rmtree(repo.full_fs_path, ignore_errors=True)
+ repo.delete()
+ ThreadLocalORMSession.flush_all()
+ M.MergeRequest.query.remove(dict(
+ app_config_id=c.app.config._id))
+ clone(*args, **kwargs)
+
+@task
def refresh(**kwargs):
c.app.repo.refresh()