diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-11-20 15:20:40 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-11-20 15:20:40 +0000 |
commit | 4b78f70fc4c9b7f807db497e4ced12a92744bc3e (patch) | |
tree | b69c51196a99892f35a68ed996238b478ab972e6 /lib/gitlab | |
parent | 9414bb00c40bb0fe157057dec497bc70df6db11e (diff) | |
parent | 38730a2d07c1b956ec578d090b3019a574ac5cca (diff) | |
download | gitlab-ce-4b78f70fc4c9b7f807db497e4ced12a92744bc3e.tar.gz |
Merge branch 'gitaly-delete-refs' into 'master'
Incorporate Gitaly's RefService.DeleteRefs RPC
Closes gitaly#740
See merge request gitlab-org/gitlab-ce!15460
Diffstat (limited to 'lib/gitlab')
-rw-r--r-- | lib/gitlab/git/repository.rb | 8 | ||||
-rw-r--r-- | lib/gitlab/gitaly_client/ref_service.rb | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb index ab3892dd50d..0c522deb6fa 100644 --- a/lib/gitlab/git/repository.rb +++ b/lib/gitlab/git/repository.rb @@ -304,7 +304,13 @@ module Gitlab end def delete_all_refs_except(prefixes) - delete_refs(*all_ref_names_except(prefixes)) + gitaly_migrate(:ref_delete_refs) do |is_enabled| + if is_enabled + gitaly_ref_client.delete_refs(except_with_prefixes: prefixes) + else + delete_refs(*all_ref_names_except(prefixes)) + end + end end # Returns an Array of all ref names, except when it's matching pattern diff --git a/lib/gitlab/gitaly_client/ref_service.rb b/lib/gitlab/gitaly_client/ref_service.rb index e8a2215959d..31b04bc2650 100644 --- a/lib/gitlab/gitaly_client/ref_service.rb +++ b/lib/gitlab/gitaly_client/ref_service.rb @@ -126,6 +126,15 @@ module Gitlab GitalyClient.call(@repository.storage, :ref_service, :delete_branch, request) end + def delete_refs(except_with_prefixes:) + request = Gitaly::DeleteRefsRequest.new( + repository: @gitaly_repo, + except_with_prefix: except_with_prefixes + ) + + GitalyClient.call(@repository.storage, :ref_service, :delete_refs, request) + end + private def consume_refs_response(response) |