${_('Invalidate Cache for Repository')}

${_('Manually invalidate the repository cache. On the next access a repository cache will be recreated.')}

${_('Cache purge can be automated by such api call. Can be called periodically in crontab etc.')}
${h.api_call_example(method='invalidate_cache', args={"repoid": c.rhodecode_db_repo.repo_id})}

${h.secure_form(h.route_path('edit_repo_caches', repo_name=c.repo_name), request=request)}
${h.end_form()}

${_('Invalidation keys')}

Cache keys used to signal repository state changes after operations such as push, strip etc.

%for cache in c.rhodecode_db_repo.cache_keys: %endfor
${_('Key')} ${_('State UID')} ${_('Namespace')} ${_('Active')}
${cache.cache_key} ${cache.cache_state_uid} ${cache.cache_args} ${h.bool2icon(cache.cache_active)}

${_('Cache keys')}

Cache keys used for storing cached values of repository stats, file tree history and file tree search. Invalidating the cache will remove those entries.

backend: ${c.region.actual_backend.__class__}
% if c.rhodecode_user.is_admin:
store: ${c.region.actual_backend.get_store()}
% else:
store: ${c.region.actual_backend.get_store().__class__}
% endif
${_('Show all')} ${len(c.repo_keys)} %for cache_key in c.repo_keys: %endfor

${_('Shadow Repositories')}

% if c.shadow_repos: % for shadow_repo in c.shadow_repos: % endfor % else: % endif
${shadow_repo}
${_('No Shadow repositories exist for this repository.')}

${_('Diff Caches')}

Number and size of stored cached diff for commits and pull requests.

% if c.rhodecode_user.is_admin: % else: % endif
${_('Cached diff name')}:${c.rhodecode_db_repo.cached_diffs_dir}${c.rhodecode_db_repo.cached_diffs_relative_dir}
${_('Cached diff files')}: ${c.cached_diff_count}
${_('Cached diff size')}: ${h.format_byte_size(c.cached_diff_size)}