Migrate Git::Repository#fsck to Gitaly
This commit is contained in:
parent
22666b7808
commit
41b0c0e9be
2 changed files with 27 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue