comparison rhodecode/controllers/admin/settings.py @ 3953:fc63a1d93803 beta

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
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 05 Jun 2013 21:20:21 +0200
parents 9378d8640a4b
children 5293d4bbb1ea
comparison
equal deleted inserted replaced
3952:ebde99f10d77 3953:fc63a1d93803
111 # url('admin_setting', setting_id=ID) 111 # url('admin_setting', setting_id=ID)
112 112
113 if setting_id == 'mapping': 113 if setting_id == 'mapping':
114 rm_obsolete = request.POST.get('destroy', False) 114 rm_obsolete = request.POST.get('destroy', False)
115 invalidate_cache = request.POST.get('invalidate', False) 115 invalidate_cache = request.POST.get('invalidate', False)
116 log.debug('rescanning directories with destroy obsolete=%s' 116 log.debug('rescanning repo location with destroy obsolete=%s'
117 % (rm_obsolete,)) 117 % (rm_obsolete,))
118 initial = ScmModel().repo_scan()
119 118
120 if invalidate_cache: 119 if invalidate_cache:
121 log.debug('invalidating all repositories cache') 120 log.debug('invalidating all repositories cache')
122 for repo_name in initial.keys(): 121 for repo in Repository.get_all():
123 ScmModel().mark_for_invalidation(repo_name) 122 ScmModel().mark_for_invalidation(repo.repo_name)
124 123
125 added, removed = repo2db_mapper(initial, rm_obsolete) 124 filesystem_repos = ScmModel().repo_scan()
125 added, removed = repo2db_mapper(filesystem_repos, rm_obsolete)
126 _repr = lambda l: ', '.join(map(safe_unicode, l)) or '-' 126 _repr = lambda l: ', '.join(map(safe_unicode, l)) or '-'
127 h.flash(_('Repositories successfully ' 127 h.flash(_('Repositories successfully '
128 'rescanned added: %s ; removed: %s') % 128 'rescanned added: %s ; removed: %s') %
129 (_repr(added), _repr(removed)), 129 (_repr(added), _repr(removed)),
130 category='success') 130 category='success')