summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-02-20 19:54:16 +0000
committerRémy Coutable <remy@rymai.me>2016-02-21 21:06:44 +0100
commit20b3be6e24c1ce160fab6595958ea3f40efdec20 (patch)
tree797f32183c362861d3251270bd537893cacf0047
parent3d83a06356735e3e3e71e35be46bf0d8a2eeda49 (diff)
downloadgitlab-ce-20b3be6e24c1ce160fab6595958ea3f40efdec20.tar.gz
Merge branch 'flush-cache-web-editor' into 'master'
Flush emptiness caches whenever needed See merge request !2903
-rw-r--r--app/models/repository.rb4
-rw-r--r--spec/models/repository_spec.rb14
2 files changed, 18 insertions, 0 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index be30a3b0906..e050bd45254 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -239,6 +239,10 @@ class Repository
end
expire_branch_cache(branch_name)
+
+ # This ensures this particular cache is flushed after the first commit to a
+ # new repository.
+ expire_emptiness_caches if empty?
end
# Expires _all_ caches, including those that would normally only be expired
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index 9242f755449..b596782f4e1 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -361,6 +361,20 @@ describe Repository, models: true do
repository.expire_cache('master')
end
+
+ it 'expires the emptiness cache for an empty repository' do
+ expect(repository).to receive(:empty?).and_return(true)
+ expect(repository).to receive(:expire_emptiness_caches)
+
+ repository.expire_cache
+ end
+
+ it 'does not expire the emptiness cache for a non-empty repository' do
+ expect(repository).to receive(:empty?).and_return(false)
+ expect(repository).to_not receive(:expire_emptiness_caches)
+
+ repository.expire_cache
+ end
end
describe '#expire_root_ref_cache' do