Migrate Git::Repository#fsck to Gitaly

This commit is contained in:
Kim Carlbäcker 2017-12-08 00:27:11 +00:00 committed by Robert Speicher
parent 22666b7808
commit 41b0c0e9be
2 changed files with 27 additions and 2 deletions

View file

@ -1160,9 +1160,15 @@ module Gitlab
end
def fsck
output, status = run_git(%W[--git-dir=#{path} fsck], nice: true)
gitaly_migrate(:git_fsck) do |is_enabled|
msg, status = if is_enabled
gitaly_fsck
else
shell_fsck
end
raise GitError.new("Could not fsck repository:\n#{output}") unless status.zero?
raise GitError.new("Could not fsck repository: #{msg}") unless status.zero?
end
end
def rebase(user, rebase_id, branch:, branch_sha:, remote_repository:, remote_branch:)
@ -1310,6 +1316,14 @@ module Gitlab
File.write(File.join(worktree_info_path, 'sparse-checkout'), files)
end
def gitaly_fsck
gitaly_repository_client.fsck
end
def shell_fsck
run_git(%W[--git-dir=#{path} fsck], nice: true)
end
def rugged_fetch_source_branch(source_repository, source_branch, local_ref)
with_repo_branch_commit(source_repository, source_branch) do |commit|
if commit

View file

@ -87,6 +87,17 @@ module Gitlab
response.result
end
def fsck
request = Gitaly::FsckRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :repository_service, :fsck, request)
if response.error.empty?
return "", 0
else
return response.error.b, 1
end
end
end
end
end