# HG changeset patch # User Marcin Kuzminski # Date 1370460021 -7200 # Node ID fc63a1d9380378ecffc167ae022c68a5c9b66295 # Parent ebde99f10d77d3c77d12ab16a4c2a7a4894d81d7 Switched order of actions when doing repo rescan. doing invalidation after repository scan is not optimal. In case of big repository we first create an instance then invalidate cache that we don't actually need. Reversing this order prevents that diff -r ebde99f10d77 -r fc63a1d93803 rhodecode/controllers/admin/settings.py --- a/rhodecode/controllers/admin/settings.py Wed Jun 05 21:06:59 2013 +0200 +++ b/rhodecode/controllers/admin/settings.py Wed Jun 05 21:20:21 2013 +0200 @@ -113,16 +113,16 @@ if setting_id == 'mapping': rm_obsolete = request.POST.get('destroy', False) invalidate_cache = request.POST.get('invalidate', False) - log.debug('rescanning directories with destroy obsolete=%s' + log.debug('rescanning repo location with destroy obsolete=%s' % (rm_obsolete,)) - initial = ScmModel().repo_scan() if invalidate_cache: log.debug('invalidating all repositories cache') - for repo_name in initial.keys(): - ScmModel().mark_for_invalidation(repo_name) + for repo in Repository.get_all(): + ScmModel().mark_for_invalidation(repo.repo_name) - added, removed = repo2db_mapper(initial, rm_obsolete) + filesystem_repos = ScmModel().repo_scan() + added, removed = repo2db_mapper(filesystem_repos, rm_obsolete) _repr = lambda l: ', '.join(map(safe_unicode, l)) or '-' h.flash(_('Repositories successfully ' 'rescanned added: %s ; removed: %s') %