diff options
author | Ahmad Sherif <ahmad.m.sherif@gmail.com> | 2017-09-05 20:29:45 +0300 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2017-09-05 20:29:45 +0300 |
commit | e10437de407a0782cd49cf5f341517c5b17fdd5e (patch) | |
tree | dedfc13a94771ed00c106d7b0e6ec33f3bc1793f /lib/gitlab/git/repository.rb | |
parent | 063e285e6a8c26a95809873fb32fefc54fe9bdb6 (diff) |
Migrate Gitlab::Git::Repository#find_branch to Gitaly
Diffstat (limited to 'lib/gitlab/git/repository.rb')
-rw-r--r-- | lib/gitlab/git/repository.rb | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb index f7577b02d5d..75d4efc0bc5 100644 --- a/lib/gitlab/git/repository.rb +++ b/lib/gitlab/git/repository.rb @@ -134,15 +134,19 @@ module Gitlab # This is to work around a bug in libgit2 that causes in-memory refs to # be stale/invalid when packed-refs is changed. # See https://gitlab.com/gitlab-org/gitlab-ce/issues/15392#note_14538333 - # - # Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/474 def find_branch(name, force_reload = false) - reload_rugged if force_reload + gitaly_migrate(:find_branch) do |is_enabled| + if is_enabled + gitaly_ref_client.find_branch(name) + else + reload_rugged if force_reload - rugged_ref = rugged.branches[name] - if rugged_ref - target_commit = Gitlab::Git::Commit.find(self, rugged_ref.target) - Gitlab::Git::Branch.new(self, rugged_ref.name, rugged_ref.target, target_commit) + rugged_ref = rugged.branches[name] + if rugged_ref + target_commit = Gitlab::Git::Commit.find(self, rugged_ref.target) + Gitlab::Git::Branch.new(self, rugged_ref.name, rugged_ref.target, target_commit) + end + end end end |