Skip to content
Snippets Groups Projects
Commit 4ea1973f authored by Stan Hu's avatar Stan Hu
Browse files

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
parent a98ad03b
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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)
 
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
@@ -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.
Loading
Loading
Loading
Loading
@@ -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
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment