diff rhodecode/controllers/admin/settings.py @ 3951:9378d8640a4b beta

Added extra flag to invalidate caches when doing rescan from web interface
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 05 Jun 2013 20:45:05 +0200
parents 985db7f7b9b2
children fc63a1d93803
line wrap: on
line diff
--- a/rhodecode/controllers/admin/settings.py	Wed Jun 05 19:55:35 2013 +0200
+++ b/rhodecode/controllers/admin/settings.py	Wed Jun 05 20:45:05 2013 +0200
@@ -112,11 +112,15 @@
 
         if setting_id == 'mapping':
             rm_obsolete = request.POST.get('destroy', False)
-            log.debug('Rescanning directories with destroy=%s' % rm_obsolete)
+            invalidate_cache = request.POST.get('invalidate', False)
+            log.debug('rescanning directories with destroy obsolete=%s'
+                      % (rm_obsolete,))
             initial = ScmModel().repo_scan()
-            log.debug('invalidating all repositories')
-            for repo_name in initial.keys():
-                ScmModel().mark_for_invalidation(repo_name)
+
+            if invalidate_cache:
+                log.debug('invalidating all repositories cache')
+                for repo_name in initial.keys():
+                    ScmModel().mark_for_invalidation(repo_name)
 
             added, removed = repo2db_mapper(initial, rm_obsolete)
             _repr = lambda l: ', '.join(map(safe_unicode, l)) or '-'