Mercurial > kallithea
diff rhodecode/controllers/admin/repos.py @ 2726:aa17c7a1b8a5 beta
Implemented basic locking functionality.
- Reimplemented how githooks behave
- emaulate pre-receive hook
- install missing git hooks if they aren't already in repo
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 22 Aug 2012 00:30:02 +0200 |
parents | aa89767753a9 |
children | 63e58ef80ef1 faffec4abbda |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos.py Tue Aug 21 19:36:21 2012 +0200 +++ b/rhodecode/controllers/admin/repos.py Wed Aug 22 00:30:02 2012 +0200 @@ -381,6 +381,7 @@ RepoModel().delete_stats(repo_name) Session().commit() except Exception, e: + log.error(traceback.format_exc()) h.flash(_('An error occurred during deletion of repository stats'), category='error') return redirect(url('edit_repo', repo_name=repo_name)) @@ -397,11 +398,32 @@ ScmModel().mark_for_invalidation(repo_name) Session().commit() except Exception, e: + log.error(traceback.format_exc()) h.flash(_('An error occurred during cache invalidation'), category='error') return redirect(url('edit_repo', repo_name=repo_name)) @HasPermissionAllDecorator('hg.admin') + def repo_locking(self, repo_name): + """ + Unlock repository when it is locked ! + + :param repo_name: + """ + + try: + repo = Repository.get_by_repo_name(repo_name) + if request.POST.get('set_lock'): + Repository.lock(repo, c.rhodecode_user.user_id) + elif request.POST.get('set_unlock'): + Repository.unlock(repo) + except Exception, e: + log.error(traceback.format_exc()) + h.flash(_('An error occurred during unlocking'), + category='error') + return redirect(url('edit_repo', repo_name=repo_name)) + + @HasPermissionAllDecorator('hg.admin') def repo_public_journal(self, repo_name): """ Set's this repository to be visible in public journal,