Expire and build repository cache after project import
After a project import, there's a chance that the UI checks the branch count before the project has been imported. This change causes more of the keys to be flushed after an import and forces a rebuild of the repository cache. Closes #13518
This commit is contained in:
parent
a98ad03ba1
commit
4ea1973f59
|
@ -13,6 +13,7 @@ Please view this file on the master branch, on stable branches it's out of date.
|
|||
|
||||
## 8.13.1 (unreleased)
|
||||
- Fix error in generating labels
|
||||
- Expire and build repository cache after project import
|
||||
|
||||
## 8.13.0 (2016-10-22)
|
||||
|
||||
|
|
|
@ -419,6 +419,17 @@ class Repository
|
|||
@exists = nil
|
||||
end
|
||||
|
||||
# expire cache that doesn't depend on repository data (when expiring)
|
||||
def expire_content_cache
|
||||
expire_tags_cache
|
||||
expire_tag_count_cache
|
||||
expire_branches_cache
|
||||
expire_branch_count_cache
|
||||
expire_root_ref_cache
|
||||
expire_emptiness_caches
|
||||
expire_exists_cache
|
||||
end
|
||||
|
||||
# Runs code after a repository has been created.
|
||||
def after_create
|
||||
expire_exists_cache
|
||||
|
@ -473,14 +484,13 @@ class Repository
|
|||
end
|
||||
|
||||
def before_import
|
||||
expire_emptiness_caches
|
||||
expire_exists_cache
|
||||
expire_content_cache
|
||||
end
|
||||
|
||||
# Runs code after a repository has been forked/imported.
|
||||
def after_import
|
||||
expire_emptiness_caches
|
||||
expire_exists_cache
|
||||
expire_content_cache
|
||||
build_cache
|
||||
end
|
||||
|
||||
# Runs code after a new commit has been pushed.
|
||||
|
|
|
@ -1146,28 +1146,17 @@ describe Repository, models: true do
|
|||
end
|
||||
|
||||
describe '#before_import' do
|
||||
it 'flushes the emptiness cachess' do
|
||||
expect(repository).to receive(:expire_emptiness_caches)
|
||||
|
||||
repository.before_import
|
||||
end
|
||||
|
||||
it 'flushes the exists cache' do
|
||||
expect(repository).to receive(:expire_exists_cache)
|
||||
it 'flushes the repository caches' do
|
||||
expect(repository).to receive(:expire_content_cache)
|
||||
|
||||
repository.before_import
|
||||
end
|
||||
end
|
||||
|
||||
describe '#after_import' do
|
||||
it 'flushes the emptiness cachess' do
|
||||
expect(repository).to receive(:expire_emptiness_caches)
|
||||
|
||||
repository.after_import
|
||||
end
|
||||
|
||||
it 'flushes the exists cache' do
|
||||
expect(repository).to receive(:expire_exists_cache)
|
||||
it 'flushes and builds the cache' do
|
||||
expect(repository).to receive(:expire_content_cache)
|
||||
expect(repository).to receive(:build_cache)
|
||||
|
||||
repository.after_import
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue