diff options
author | Stan Hu <stanhu@gmail.com> | 2019-08-13 09:04:30 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2019-08-13 09:04:30 -0700 |
commit | e658f9603c99ca6a8ef4c0292b2cdab2916fb09e (patch) | |
tree | 57e0c03ea5dd676c7a53243bf3da20aefafc0ded /lib | |
parent | 3702ab7317533896c7455357dd6643181666f22b (diff) | |
download | gitlab-ce-e658f9603c99ca6a8ef4c0292b2cdab2916fb09e.tar.gz |
Only expire tag cache once per pushsh-only-flush-tags-once-per-push
Previously each tag in a push would invoke the Gitaly `FindAllTags` RPC
since the tag cache would be invalidated with every tag.
We can eliminate those extraneous calls by expiring the tag cache once
in `PostReceive` and taking advantage of the cached tags.
Relates to https://gitlab.com/gitlab-org/gitlab-ce/issues/65795
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/git_post_receive.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/gitlab/git_post_receive.rb b/lib/gitlab/git_post_receive.rb index 6c7f23a673c..24d752b8a4b 100644 --- a/lib/gitlab/git_post_receive.rb +++ b/lib/gitlab/git_post_receive.rb @@ -33,6 +33,12 @@ module Gitlab end end + def includes_tags? + enum_for(:changes_refs).any? do |_oldrev, _newrev, ref| + Gitlab::Git.tag_ref?(ref) + end + end + private def deserialize_changes(changes) |